0

我有一个docker-compose.yml文件,它带来了 5 个不同的容器。为了真正提出它们,我使用了docker-composer up -d.

我喜欢有某种 GUI,所以我使用 Portainer 来查看我的容器,我注意到的是 Portainer 容器列表实际上还有一个我从未见过的字段docker ps,那就是stack.

现在我已经在Docker 文档中阅读了有关堆栈的信息,但仍然没有完全明白一件事。我对堆栈一无所知Dockerfiledocker-compose.yml但是当我启动容器时,它们都被标记为堆栈,即我的 Docker 配置所在的文件夹。

除了分类该组容器属于同一个堆栈之外,它还有什么用途?是否可以操纵该属性以便我为其分配我的个人命名?

4

1 回答 1

0

编辑:

这是 Portainer 的命名约定。他们在他们的文档stack中同时使用Docker SwarmDocker Compose这个术语。


原帖:

Docker ComposeDocker Stack都可以由一个docker-compose.yml

来自Nick Janetakis 的Docker Compose vs Docker Stack

Docker Compose是一个官方工具,它允许您通过docker-compose.yml文件定义所有内容,从而帮助您管理 Docker 容器。

docker stack是嵌入到Docker CLI中的命令。它允许您通过Docker Swarm管理 Docker 容器集群。


碰巧 Docker Compose 和docker stack命令都支持相同的docker-compose.yml文件,但功能略有不同

在某些情况下,某些仅适用的功能docker stack会被 Docker Compose 忽略,同样,Docker Compose 不支持的功能也会被docker stack命令忽略。

例如,该deploy属性被 Docker Composedepends_on忽略,被docker stack. 还有其他差异。您可以通过查看官方 Compose 文件参考来找到它们。它将调出 Compose 或 Stack 特定的属性。

这允许您定义一个docker-compose.yml同时适用于 Docker Compose 的单一功能,并且docker stack如果您碰巧在开发中使用 Docker Compose 并在生产中使用 Docker Swarm,那么它可以很好地提高生活质量。

于 2018-11-16T10:21:55.000 回答