Docker 什么';堆栈文件和编写文件之间的区别是什么?
我正在学习如何使用Docker Compose在多个容器中跨多个主机部署应用程序。我遇到了两个配置文件——堆栈文件和组合文件 从中可以看出,堆栈文件是一个YAML格式的文件,它定义了一个或多个服务,类似于Docker 什么';堆栈文件和编写文件之间的区别是什么?,docker,docker-compose,docker-swarm,docker-swarm-mode,Docker,Docker Compose,Docker Swarm,Docker Swarm Mode,我正在学习如何使用Docker Compose在多个容器中跨多个主机部署应用程序。我遇到了两个配置文件——堆栈文件和组合文件 从中可以看出,堆栈文件是一个YAML格式的文件,它定义了一个或多个服务,类似于docker compose.yml文件,但有一些扩展名 从中可以看出,堆栈与docker compose非常相似,只是它们定义了服务,而docker compose定义了容器 它们看起来非常相似,所以我想知道何时使用堆栈文件,何时使用组合文件?从概念上讲,这两个文件都有相同的用途—在docke
docker compose.yml
文件,但有一些扩展名
从中可以看出,堆栈与docker compose非常相似,只是它们定义了服务,而docker compose定义了容器
它们看起来非常相似,所以我想知道何时使用堆栈文件,何时使用组合文件?从概念上讲,这两个文件都有相同的用途—在docker引擎上部署和配置容器 Docker compose工具是首先创建的,其目的是在单个Docker引擎上“定义和运行多容器Docker应用程序”。(见附件) 您可以使用
docker compose up
创建/更新容器、网络、卷等
Docker Stack用于Docker Swarm(Docker的编排和调度工具),因此,它具有单个Docker引擎不需要的其他配置参数(即副本、部署、角色)
堆栈文件由docker stack
命令解释。此命令只能从docker swarm manager调用
您可以将docker-compose.yml转换为docker-cloud.yml并返回。然而,正如你在问题中所说,你必须注意这些差异。另外,您需要记住docker compose有不同的版本。目前,最新版本为第3版。()
编辑:在这里可以找到一个有趣的博客,它可能有助于理解这些差异
注意:问题猜测Docker Cloud参考是理解堆栈的参考,它很有用,但这不是stack vs compose的权威来源,而是Docker托管服务的特定指南:“Docker Cloud提供了一个带有构建和测试设施的托管注册表服务。”有关文件文档,请参阅——虽然它的名称为“Compose”,但这是一个权威的地方,它的功能可以同时与Compose和swarm/stack一起使用,以及如何使用
您可以通过两种方式指定要配置和部署的一组Docker容器:
Docker compose up
)Docker swarm init;Docker stack deploy——编写文件Docker-stack.yml mystack
)docker stack deploy
或docker compose up
忽略
例如,以下选项适用于(版本3)合成文件:
构建、cap\u添加、cap\u删除、cgroup\u父级、容器名称、依赖、设备、外部链接、链接、网络模式、重启、安全选项、停止信号、系统控制、tmpfs(版本3-3.5)、用户模式
…虽然一些选项被docker compose
忽略,但可以使用docker stack deploy
,例如:
部署、重新启动\u策略
从命令行运行时,docker stack deploy
将打印有关忽略哪些选项的警告:
忽略不支持的选项:链接
文件命名
- 对于
,如果未使用docker compose up
指定备用文件名,则默认文件名为-f
(请参阅)。通常使用此默认名称并在不带参数的情况下运行命令docker compose.yml
- 对于
,中没有提供默认文件。您可以使用任何名称,但有三个约定:docker stack deploy
- 使用docker stack.yml,如官方初学者docker第3章所述:
- 使用docker cloud.yml,如docker cloud服务的中所用
- 使用
——编写文件格式的旧默认名称docker compose.yml
docker compose
时,会被忽略,并且仅在实际操作中docker stack deploy
。我想,出于所有目的,对于3+版本的compose,它们是相同的?版本3与2不同。不是很多。特别是卷的声明方式。还有其他更改。版本3 compose应该能够在swarm上工作无需更改,但实际上您可能希望添加swarm配置,尤其是当您的容器有卷并且您无法承受重新部署时丢失其数据时。@sudo“docker stack“仅适用于Docker Swarm。docker compose是dock的一个附加组件,用于帮助在单个docker引擎上协调服务。Docker stack是Docker compose的一个大脑孩子。希望将来他们能合并机器人