项目目录结构
1 | proj/ |
Dockerfile文件编写
【必须】选择一个合适的镜像,参考
FROM命令。【可选】安装项目依赖,项目依赖一定要在前面进行安装。
【必须】将配置依赖的配置文件拷贝到响应目录下,参考
COPY命令。【必须】设置工作目录,参考
WORKDIR命令。【必须】安装项目依赖,参考
RUN命令。
【可选】设置docker build参数,参考
ARG命令。【必须】将项目代码拷贝到响应目录,参考
ADD命令。【必须】设置工作目录,如果2没有执行的话,参考
WORKDIR命令。【可选】编译项目,如果必须的话,参考
RUN命令。【可选】设置挂载目录,如果必须的话,参考
VOLUME命令。【必须】设置需要暴露的端口号,参考
EXPOSE命令。【必须】设置服务启动时运行的命令,参考
CMD命令。
示例1:一个Python项目的示例
1 | FROM python:3.5-alpine |
示例2:一个Angular2项目的示例
1 | FROM node:6-alpine |
docker-compose.yaml文件编写
【必须】设置compose文件的版本,参数
version。【必须】设置服务列表,下面可以有多个服务,参数
services。【必须】设置服务名,服务名即是参数名。
【必须】设置build相关参数,参数
build。【必须】设置Dockerfile文件的位置,参数
context。【可选】设置Dockerfile的文件名,如果文件就是
Dockerfile可不设置,参数dockerfile。【可选】设置编译时需要的参数列表,至少设置一个参数,否则不设置,参数
args。冒号分隔,冒号前是参数名,后面是参数值。
【必须】设置镜像名称,参数
image。【可选】设置依赖的服务列表,服务名参考第3步设置。参数
depends_on。【必须】设置绑定的端口号,参数
ports。冒号分隔,冒号前面是宿主机的端口,冒号后面是docker容器的端口。 容器的端口后面也可以指定协议,如:
8000:8000、53:53/tcp、53:53/udp。【必须】设置服务意外停止时重启设置,参数
restart。【可选】如果不实用镜像自带命令,可在这设置启动服务运行的命令,参数
command。【可选】设置服务运行时需要环境变量配置文件,参数
env_file。【可选】设置挂载列表,可以将文件或文件夹挂载到容器中,参数
volumes。冒号分隔,前面是宿主机文件/文件夹,后面是容器里面的文件/文件夹。
示例
1 | version: "2" |
.env文件编写
- 【必须】设置COMPOSE_PROJECT_NAME。
示例
1 | COMPOSE_PROJECT_NAME=cloud |
项目部署
1 | # 部署时执行 |