繁体   English   中英

Docker:Linux Worker 没有加入 Windows Master 定义的 Overlay 网络。 Windows Worker 工作正常

[英]Docker: Linux Worker does not join Overlay network defined by Windows Master. Windows Worker works fine

我有以下3个节点..

C:\Users\yadamu>docker node ls
ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
4tpray751pk50bl6o6gtbjfq2     YADAMU-DB5   Ready     Active                          20.10.8
xzx0gxu1m0qo59z6gtr4j2i1p *   yadamu-db3   Ready     Active         Leader           20.10.8
x1yh3l6m6k73gytkxx3ipimq4     yadamu-db4   Ready     Active                          20.10.10

在 yadamu-db3 (Manager),一个 Windows 11 机器上,我创建了一个覆盖网络

docker network create --driver overlay --attachable Y_OVERLAY

然后我在 YADAMU-DB3 上使用 docker-compose 启动了一组容器。 他们如期而至,可以互相交谈。 然后我在 YADAMU-DB5 上启动了第二组容器,这也是一个使用不同 docker compose 文件的 Windows 11 机器,它们还可以相互通信以及与在 YADAMU-DB5 上运行的容器通信。

然后,我在运行 Oracle Enterprise Linux 8 的 YADAMU-DB4 上使用 docker compose 启动了第三组容器。这些容器可以相互通信,但与在 YADAMU-DB3 和 YADAMU-DB5 上运行的容器隔离。

所有三个 docker compose 文件都包含以下“网络”部分

networks: 
  YADAMU-NET:
     name: Y_OVERLAY0
     attachable : true

但是,当我在 linux 机器上运行 docker-compose 时,我看到

C:\Development\YADAMU\docker\dockerfiles\swarm\YADAMU-DB4>docker-compose up -d
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

To deploy your application across the swarm, use `docker stack deploy`.

Creating network "Y_OVERLAY" with the default driver
Creating volume "YADAMU_01-SHARED" with default driver

当我列出我看到的网络时

C:\Development\YADAMU\docker\dockerfiles\swarm\YADAMU-DB4>docker network ls
NETWORK ID     NAME              DRIVER    SCOPE
b87206cfac4c   Y_OVERLAY         bridge    local
393beef01a7f   bridge            bridge    local
e19e5f965e8d   docker_gwbridge   bridge    local
1b4cbfa566f0   host              host      local
y58mwnbratkj   ingress           overlay   swarm
32a41d9b3d7c   none              null      local

当我在 YADAMU-DB5 上列出网络时,我看到

C:\Users\Mark D Drake>docker network ls
NETWORK ID     NAME        DRIVER    SCOPE
luh9dw47k5a1   Y_OVERLAY   overlay   swarm
y58mwnbratkj   ingress     overlay   swarm
8fd8ef298f47   nat         nat       local
dce21ec8e1ae   none        null      local

所以看起来在 LINUX 框上它没有将 Y_OVERLAY 解析为群管理器定义的覆盖网络。

任何想法我在这里失踪..

请注意,这里的目的不是构建一个有弹性的群,而是构建一个 qa 环境,可用于在有限的硬件上测试 windows 和 linux 主机之间的交互。

我找到了一个解决方法..如果我关闭 linux 节点上的容器,然后将其提升为“管理器”,然后在 linux 节点上运行 docker-compose up,则包含加入 Overlay 网络...

这并没有解释为什么这不适用于作为工作者的 linux 节点,但这意味着我可以继续前进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM