博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker compose VS docker stack
阅读量:6857 次
发布时间:2019-06-26

本文共 2085 字,大约阅读时间需要 6 分钟。

  hot3.png

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,这是唯一强制的keyautodestroy 当service被stop的时候,container应该是否被终止。默认是no,可以有no, on-success, always三种autoredeploy 当image在updated的时候,service的container是否应该被自动重新部署,默认是falsecap_add, cap_drop 增加或者删除容器的acp能力,可以通过man 7 capabilities来查看具体的能力cgroup_parent 指定一个可选的父cgroupcommand 覆盖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 domainsenvironment 一个环境变量列表,会被增加到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一样的权限,默认是falserestart 当service被stop的时候是否重启container,默认是no,可以是no, on-failure, alwaysroles 一个docker api的roles列表security_opt 覆盖container的默认 labeling schemesequential_deployment 容器是否被应该逐一启动和扩展,默认是falsetags 标明部署tags,用来选择nodes,以确定container运行在那个nodestarget_num_containers 该service默认运行的container副本数,默认是1volumes 挂载的路径,格式是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

 

 

 

转载于:https://my.oschina.net/guol/blog/1377534

你可能感兴趣的文章
ES6简介
查看>>
UWP FillRowViewPanel
查看>>
目前的.NET(C#)世界里,主流的ORM框架
查看>>
Java 基础知识点
查看>>
Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法...
查看>>
vimperator
查看>>
(原創) 如何使用boost::array? (C/C++) (template) (boost)
查看>>
Oracle for Windows 相关下载地址
查看>>
电子书下载:Microsoft Silverlight 4 Business Application Development: Beginners Guide
查看>>
.Net下RabbitMQ的使用(2) -- 发送接收消息
查看>>
2009年云数据库的开发和应用前景(转载)
查看>>
Some key terms of Data Mining
查看>>
咏南中间件更新日志
查看>>
9-1让我想起了学生时代~~
查看>>
谷歌用户体验设计准则
查看>>
LaTeX中的数学公式
查看>>
计算二重定积分
查看>>
asp.net Web项目中c#读取域用户名的方法
查看>>
重绘TabControl
查看>>
Python Decorator
查看>>