这篇文章主要讲解了“docker compose与docker stack有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。