docker compose与docker stack有什么用

63次阅读
没有评论

共计 2305 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要讲解了“docker compose 与 docker stack 有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“docker compose 与 docker stack 有什么用”吧!

docker 在 1.12 的时候引入了 swarm mode,其中有个 stack 命令,看起来两者的功能差不多,但还有一点差异的:

docker compose:

 compose 是 fig 演变而来,python 脚本,需要单独安装,compose 可以 build image,compose 需要单独安装,compose 更多是 dev 环境使用。

docker stack:

 stack 被集成进 docker 原生 CLI,go 编写,不支持 build image。stack 更适合 docker cloud 环境,用来管理集群。

  一个 stack 是一组 services 的集合,它可以使你的 app 运行在指定的环境,一个 stack 文件是一个 YAML 文件,YAML 文件中定义了一个或者多个 services,和 docker-compose.yml 文件很相似,但是和 compose 又有一点小扩展。两者虽然都使用 compose.yml 文件,但是里面的命令有一丢丢的差别,stack 只支持 swarm 模式下使用,只支持 compose V3 格式。

stack 配置项

image  该 image 用来部署该 service,这是唯一强制的 key
autodestroy  当 service 被 stop 的时候,container 应该是否被终止。默认是 no,可以有 no, on-success, always 三种
autoredeploy  当 image 在 updated 的时候,service 的 container 是否应该被自动重新部署,默认是 false
cap_add, cap_drop  增加或者删除容器的 acp 能力,可以通过 man 7 capabilities 来查看具体的能力
cgroup_parent  指定一个可选的父 cgroup
command  覆盖 image 中的 command 指令
deployment_strategy  容器在 node 上的分布,默认是 emptiest_node,可以是 emptiest_node, high_availability, every_node 三种。devices device mapping 列表,和 docker client 使用 --device 效果一样
dns  自定义 dns server,可以是一个地址,也可以是多个列表地址
dns_search  自定义 DNS search domains
environment  一个环境变量列表,会被增加到 service 的环境变量中,这里的定义会覆盖 image 中的环境变量定义。expose  暴露端口,但是不会发布到 host 上,它只是可以在你的 nodes 上可以访问
extra_hosts  增加 hostname 映射,和 docker client 的 --add-host 效果一样
labels  增加 container 的元数据。links  连接到其他 service 上
net  设置网络模式,默认只支持 bridge 和 host 模式
pid  设置 pid 模式,ports  暴露端口,格式是 HOST:CONTAINER,或者只指定 container 的端口,这样会在 host 上选择一个随机的端口
privileged  是否开启 container 和 docker engine 一样的权限,默认是 false
restart  当 service 被 stop 的时候是否重启 container,默认是 no,可以是 no, on-failure, always
roles  一个 docker api 的 roles 列表
security_opt  覆盖 container 的默认  labeling scheme
sequential_deployment  容器是否被应该逐一启动和扩展,默认是 false
tags  标明部署 tags,用来选择 nodes,以确定 container 运行在那个 nodes
target_num_containers  该 service 默认运行的 container 副本数,默认是 1
volumes  挂载的路径,格式是 HOST:CONTAINER,或者 HOST:CONTAINER:ro,指定访问模式
volumes_from  从另一个 service 挂载所有的 volumes
#和 docker run 共同的 key
 working_dir: /app 
 entrypoint: /app/entrypoint.sh 
 user: root 
 hostname: foo 
 domainname: foo.com 
 mac_address: 02:42:ac:11:65:43 
 cpu_shares: 512 
 cpuset: 0,1 
 mem_limit: 100000m 
 memswap_limit: 200000m 
 privileged: true 
 read_only: true 
 stdin_open: true 
 tty: true

stack 不支持的配置项:build external_links env_file

感谢各位的阅读,以上就是“docker compose 与 docker stack 有什么用”的内容了,经过本文的学习后,相信大家对 docker compose 与 docker stack 有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2305字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)