我是一位新的 Docker 用户。在不同的手册中,我经常会看到用于描述 Docker 作业的 docker-compose.yml 文件,但在 Docker 网站上,为此目的使用的是 docker-stack.yml 文件。这两者有什么区别呢?
我是一位新的 Docker 用户。在不同的手册中,我经常会看到用于描述 Docker 作业的 docker-compose.yml 文件,但在 Docker 网站上,为此目的使用的是 docker-stack.yml 文件。这两者有什么区别呢?
docker-compose.yml是用于docker-compose工具的,该工具用于在单个docker引擎上运行多容器docker应用程序。
它是通过以下方式调用的:
docker-compose up
docker-stack.yml是用于Docker Swarm工具的(用于编排和调度)。
它使用以下命令进行调用:
docker stack
补充Gabbax0r的回答:
Docker Swarm是一个独立组件,用于将Docker引擎集群化为单个引擎。
自Docker 1.12版本起,“Swarm”独立组件已经整合到Docker引擎中(请阅读此页面的前言),Swarm现在已经是过时的技术。
回答你最初的问题,它们只是不同情况下使用的不同名称,但它们都旨在达到相同的目的。
回答你的评论问题,如果你需要在单个节点上编排多容器应用程序,则使用docker-compose;如果你需要担心多节点和负载均衡等高级问题,则最好选择Swarm。
docker-stack.yml 相对于 docker-compose.yml 有以下优势:
分别更新
在使用服务、集群和 docker-stack.yml 文件时,请记住支持服务的任务(容器)可以部署在任何节点中。
每次更新服务时,这可能会应用于不同的节点。
远程部署
如果您正在私有主机上运行Docker Swarm,则可以使用 docker-stack.yml 使用 SSH 密钥访问和远程部署应用程序到主机。
您甚至可以使用像 Codefresh 这样的服务来实现。
docker stack
,所以我猜这只是一种命名惯例。 - davidAdocker stack
和docker-compose.yml的Docker入门“介绍”,但从未提到docker-compose
工具本身。这可能是一种次要的文档不一致性。https://docs.docker.com/get-started/ - davidA