我有以下3个节点。。
C:Usersyadamu>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文件的Windows11盒子,它们也可以相互交谈,也可以与YADAMUDB5上运行的容器交谈。
然后,我在运行OracleEnterpiseLinux8的YADAMU-DB4上使用docker-compose启动了第三组容器。这些容器可以相互通信,但与在YADAMU-DB3和YADAMUDB5上运行的容器隔离。
所有三个docker组成的文件都包含以下"网络"部分
networks:
YADAMU-NET:
name: Y_OVERLAY0
attachable : true
然而,当我在linux盒子上运行docker compose时,我看到了
C:DevelopmentYADAMUdockerdockerfilesswarmYADAMU-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:DevelopmentYADAMUdockerdockerfilesswarmYADAMU-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:UsersMark 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解析为由群管理器定义的覆盖网络。
你知道我在这里错过了什么吗。。
请注意,这里的目的不是构建一个resiliant swarm,而是构建一个qa环境,用于在有限的硬件上测试windows和linux主机之间的交互。
我找到了一个解决方法。。如果我在linux节点上关闭容器,然后将其提升为"Manager",然后在linux节点运行docker compose up,则contains将加入Overlay网络。。。
这并不能解释为什么这不能作为一个工作程序与linux节点一起工作,但这意味着我可以继续前进。