Docker学习12 使用Compose管理容器集群( 二 )


4. 使用 Compose 命令构建和运行应用在测试目录中 , 执行以下命令来启动应用程序:
docker-compose up后台执行该服务可以加上 -d 参数:
docker-compose up -d运行效果:

Docker学习12 使用Compose管理容器集群

文章插图
 
六、yml 配置指令参考version【Docker学习12 使用Compose管理容器集群】指定本 yml 依从的 compose 哪个版本制定的 。
build指定为构建镜像上下文路径:例如 webapp 服务 , 指定为从上下文路径 ./dir/Dockerfile 所构建的镜像:
version: "3.7"services:webapp:build: ./dir或者 , 作为具有在上下文指定的路径的对象 , 以及可选的 Dockerfile 和 args:
version: "3.7"services:webapp:build:context: ./dirdockerfile: Dockerfile-alternateargs:buildno: 1labels:- "com.example.description=Accounting webapp"- "com.example.department=Finance"- "com.example.label-with-empty-value"target: prod
  • context:上下文路径 。
  • dockerfile:指定构建镜像的 Dockerfile 文件名 。
  • args:添加构建参数 , 这是只能在构建过程中访问的环境变量 。
  • labels:设置构建镜像的标签
  • target:多层构建 , 可以指定构建哪一层 。
cap_add , cap_drop添加或删除容器拥有的宿主机的内核功能 。
cap_add:- ALL # 开启全部权限cap_drop:- SYS_PTRACE # 关闭 ptrace权限cgroup_parent为容器指定父 cgroup 组 , 意味着将继承该组的资源限制 。
cgroup_parent: m-executor-abcdcommand覆盖容器启动的默认命令 。
command: ["bundle", "exec", "thin", "-p", "3000"]container_name指定自定义容器名称 , 而不是生成的默认名称 。
depends_on设置依赖关系 。
deploy指定与服务的部署和运行有关的配置 。只在 swarm 模式下才会有用 。
endpoint_mode:访问集群服务的方式 。
devices指定设备映射列表 。
DNS自定义 DNS 服务器 , 可以是单个值或列表的多个值 。
dns_search自定义 DNS 搜索域 。可以是单个值或列表 。
entrypoint覆盖容器默认的 entrypoint 。
env_file从文件添加环境变量 。可以是单个值或列表的多个值 。
environment添加环境变量 。您可以使用数组或字典、任何布尔值 , 布尔值需要用引号引起来 , 以确保 YML 解析器不会将其转换为 True 或 False 。
expose暴露端口 , 但不映射到宿主机 , 只被连接的服务访问 。
extra_hosts添加主机名映射 。类似 docker client --add-host 。
healthcheck用于检测 docker 服务是否健康运行 。
image指定容器运行的镜像 。
logging服务的日志记录配置 。
network_mode设置网络模式 。
restart重启策略
secrets存储敏感数据
security_opt修改容器默认的 schema 标签 。
stop_grace_period指定在容器无法处理 SIGTERM (或者任何 stop_signal 的信号) , 等待多久后发送 SIGKILL 信号关闭容器 。
stop_signal设置停止容器的替代信号 。
sysctls设置容器中的内核参数 , 可以使用数组或字典格式 。
tmpfs在容器内安装一个临时文件系统 。可以是单个值或列表的多个值 。
ulimits覆盖容器默认的 ulimit 。
volumes将主机的数据卷或着文件挂载到容器里 。




推荐阅读