在本文中,我们会使用一个基于Node.js构建的Web应用,在这个应用包含一个简单的用户注册功能,并使用MySQL存储应用数据。部暑应用时,我们会对Node.js执行环境、MySQL数据库分别创建一个容器,并通过卷的方式在宿主机与容器间共享应用数据。
1. 创建Node应用及应用镜像
1.1 创建Node应用
创建node-app:
$ mkdir node-app
接下来使用express命令创建一个的Web应用:
$ express -e node-app
命令执行完后,就会在node-app目录下生成了Node应用文件。
注意:以上我们基于Node.js及Express创建了一个Web应用,创建应用前请确保已安装了相应软件环境。
1.2 构建Node应用镜像
创建Dockerfile
进入node-app目录并初始化Dockerfile文件:
$ cd node-app $ touch Dockerfile $ vi Dockerfile
编辑Dockerfile文件,文件内容如下:
# Express-App # # VERSION 1.0.0 FROM node:latest RUN mkdir -p /home/www/node-app WORKDIR /home/www/node-app RUN npm install EXPOSE 3000 CMD ["npm", "start"]
到目前为止,我们还未对Node应用做任何修改。上面Dockerfile文件命令请参考:使用 Docker 部暑Node.js应用-Dockerfile文件。
构建镜像
这个Dockerfile与使用 Docker 部暑Node.js应用中使用的Dockerfile文件相比,并没有使用COPY命令复制本地文件,
$ sudo docker build -t itbilu/node-app .
构建完成后,可以通过docker images命令查看该镜像:
$ docker images itbilu/node-app
