gpt4 book ai didi

docker - "This node is not a swarm manager"错误,但我没有使用 docker swarm

转载 作者:行者123 更新时间:2023-12-02 07:18:10 27 4
gpt4 key购买 nike

为了测试我们的托管构建,我正在尝试建立一个与主机和外部世界隔离的 docker 网络。

我有以下 docker-compose.yml (灵感来自 this forum post ):

version: '3'

services:
redis:
image: "redis:2.8.23"
networks:
- isolated

# ... more services (TODO)

networks:
isolated:
driver: overlay
internal: true

当我运行 docker-compose up -d 时;它会创建网络,但随后无法创建容器,并报告以下内容:

ERROR: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.



但我没有使用 docker swarm,也不想使用。

如果我从文件中删除 services: 节,它会在没有错误的情况下启动网络。它警告网络未使用(显然)。

如果我删除 services/redis/networks 节,它会正确显示容器。

我究竟做错了什么?

我找到了 this answer ,它使用 driver: bridge 作为网络,但它仍然允许访问主机。

  • Docker 版本 18.09.3,构建 774a1f4
  • docker-compose 版本 1.21.2,构建 a133471
  • 最佳答案

    您已将网络驱动程序指定为 overlay

    overlay network driver 非常依赖于群模式,可以有效地被认为是群模式组件。

    相反,您应该选择一个本地范围驱动程序而不是群范围驱动程序。

    您应该使用的驱动程序是 bridge 驱动程序。 bridge network driver 不是 swarm 模式的一部分,不依赖于激活的 swarm 模式来使用它。

    由于您使用的是 docker-compose,您可以完全忽略特定的驱动程序,它会为您选择合适的驱动程序。我建议完全删除driver: overlay行,并按原样保留文件的其余部分:

    version: '3'

    services:
    redis:
    image: "redis:2.8.23"
    networks:
    - isolated

    # ... more services (TODO)

    networks:
    isolated:
    internal: true

    关于docker - "This node is not a swarm manager"错误,但我没有使用 docker swarm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55067113/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com