我有一个简单的应用程序,我试图连接到现有的现有网络,但是当我执行docker-compose up
时,它只是在不加入现有网络的情况下为自己创建一个新网络。我要加入的现有网络用于traefik,这称为代理。我在traefik后面运行的所有其他服务都工作正常。我必须手动将mynewapp添加到代理网络中才能正常工作。我所有其他服务的组合文件也都在单独的文件夹中解耦,所以我认为并非如此。
我尝试将外部和内部值定义为true和false,但它仍会创建自己的网络。如果我与代理网络一起定义了默认网络,则它将仅创建两个名为mynodeapp_default和mynodeapp_proxy的新网络。如果我运行docker network inspect proxy
,则看不到mynewapp(但是我看到了所有其他正在运行的服务)。
我的docker network list
的输出是
62eba8d7e127 proxy bridge local
a50cdb97b743 testapp_proxy bridge local
我在这里做错了什么?
version: '3'
services:
mynodeapp:
container_name: mynodeapp
build: .
volumes:
- ./:/app/
networks:
- proxy
labels:
- traefik.enable=true
- traefik.network=proxy
networks:
proxy:
如果您希望容器加入现有网络,则需要使用external option:
version: '3'
services:
mynodeapp:
container_name: mynodeapp
build: .
volumes:
- ./:/app/
networks:
- proxy
labels:
- traefik.enable=true
- traefik.network=proxy
networks:
proxy:
external: true
您也可以指定如下,
version: "3"
services:
mynodeapp:
container_name: mynodeapp
build: .
volumes:
- ./:/app/
networks:
- proxy
labels:
- traefik.enable=true
- traefik.network=proxy
networks:
outside:
external: true
您还可以在撰写文件中与用于引用网络的名称分开指定网络的名称:
networks:
outside:
external:
name: actual-name-of-network
版本2的docker-compose文件不支持。请改用network_mode。
名称以2.1版文件格式添加]
为此网络设置自定义名称。
版本:“ 2.4”网络:网络1:名称:my-app-net