我有一个docker-compose.yml
文件,该文件调出了5个不同的容器。为了实际提出这些建议,我使用了docker-composer up -d
。
我喜欢使用某种GUI,因此我使用Portainer查看我的容器,而我注意到的是Portainer容器列表实际上还有一个我从未在docker ps
中见过的字段。 ,即stack
。
现在,我已经了解了Docker documentation中的堆栈,但是仍然一无所获。我的Dockerfile
和docker-compose.yml
并没有对堆栈进行任何说明,但是,当我启动容器时,它们都被标记为堆栈,这是我的Docker配置所在的文件夹。
除了对那组容器属于同一堆栈进行分类之外,这还有什么用?可以操纵该财产,以便我为其分配我的个人命名吗?
答案 0 :(得分:0)
编辑:
这是Portainer的命名约定。他们在docs中为 Docker Swarm 和 Docker Compose 使用了stack
一词。
原始帖子:
Docker Compose 和 Docker 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 stack
命令也会忽略Docker Compose不受支持的功能。例如,
deploy
属性被Docker Compose忽略,depends_on
被docker stack
忽略。也有其他差异。您可以通过检出official Compose file reference来找到它们。它将调用Compose或Stack特定的属性。这使您可以定义一个同时适用于Docker Compose和
docker-compose.yml
的{{1}},如果您恰好在开发中使用Docker Compose而在生产中使用Docker Swarm,则可以提高生活质量。