【问题标题】:Docker compose - stackDocker 撰写 - 堆栈
【发布时间】:2018-11-16 09:56:33
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: docker docker-compose dockerfile portainer


    【解决方案1】:

    编辑:

    这是 Portainer 的命名约定。他们在docs 中使用术语stack 来表示Docker SwarmDocker Compose


    原帖:

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

    控制

    来自尼克·珍妮塔基斯的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 Compose 忽略,depends_ondocker stack 忽略。还有其他差异。您可以通过查看official Compose file reference 找到它们。它将调出 Compose 或 Stack 特定的属性。

    这允许您定义一个同时适用于 Docker Compose 和 docker stackdocker-compose.yml,如果您碰巧在开发中使用 Docker Compose 并在生产中使用 Docker Swarm,这将大大提高生活质量。

    【讨论】:

    • 当然,但是如果我从来没有明确说过,为什么最初会创建堆栈?
    • 你能提供一个最小的例子来测试它吗?另外,也许这是搬运工使用的命名约定,令人困惑……
    • 看起来他们在docs 中使用了诸如 Swarm stackCompose stack 之类的术语。
    • 啊,是的,我注意到我可以通过在docker-compose 命令中提供-p 参数来更改它。我如何命名项目,然后分配“组合堆栈”。
    • 是的,这只是搬运工的命名约定:compose stack 在一般意义上类似于 fullstack 而 swarm stack 是 docker stack
    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 2020-03-18
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多