简介
Docker Compose 是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止
使用步骤:
- 利用 Dockerfile 定义运行环境镜像 (需要写好 Dockerfile 文件)
- 使用 docker-compose.yml 定义组成应用的各服务(启动顺序、关联关系等)
- 运行 docker-compose up 启动应用
yml 配置指令
- 指定本 yml 依从的 compose 哪个版本制定的:
version
- 指定为构建镜像上下文路径 :
build
- 上下文路径:
context
- 指定构建镜像的 Dockerfile 文件名 :
dockerfile
- 添加构建参数,这是只能在构建过程中访问的环境变量 :
args
- 设置构建镜像的标签:
labels
- 多层构建,可以指定构建哪一层:
target
- 上下文路径:
- 端口指定映射
宿主机:容器
:ports
- 数据卷挂载
宿主机:容器
:volumes
- 指定容器运行镜像 :
image
- 添加或删除容器拥有的宿主机的内核功能 :
cap_add
,cap_drop
- 指定自定义容器名称,而不是生成的默认名称:
container_name
- 设置依赖关系 :
depends_on
YAML 内容
例子一
version: '3.3'
services:
unpub:
build: ./ # 构建镜像在根目录
container_name: unpub # 容器名
restart: always # 自启动
ports:
- 4000:4000 # 端口映射,即 -p 参数,将宿主机的4000端口映射到容器的4000端口
volumes:
- ~/.unpub-packages:/app/unpub-packages # 数据卷挂载,即目录映射,-v 参数,(宿主机目录:容器目录)
depends_on:
- mongo # 依赖与下面的自定义镜像
mongo:
image: mongo:4.2.19 # 依赖镜像:版本
container_name: unpub_mongo # 容器名称
restart: always # 自启动
volumes:
- ~/.unpub_mongo:/data/db # 数据卷挂载
例子二
version: '3'
services:
nginx: # 服务名字自行定义
image: nginx # 指定通过nginx该镜像进行启动,这里可以指定镜像的版本号,如果不指定,默认为latest
ports: # 端口映射,即 -p 参数,将宿主机的80端口映射到容器的80端口
- 8090:80
links: # 指明当前服务可以访问到jenkins这个服务
- jenkins
volumes: # 目录映射,即 -v 参数,(宿主机目录:容器目录)
- ~/data/lxf/nginx/conf.d:/etc/nginx/conf.d
jenkins: # 服务名字自行定义
image: jenkins
expose: # 暴露指定的端口
- "8080"
- "5000"
参考
Thanks
- 本文链接:https://zhengzeqin.netlify.app/2022/06/11/Docker-Compose/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues