我有点困惑。在docker-compose.yml文件中:
version: "3"
networks:
proxy:
external: true
services:
eliko:
image: irmscher/eliko:v1
labels:
- traefik.backend=eliko
- traefik.frontend.rule=Host:eliko.bloggercraft.com
- traefik.docker.network=proxy
networks:
- proxy
为什么我必须两次指定网络?第一次在networks: proxy
和服务中的第二次 networks: -proxy
?
我实际上已经用docker network create proxy
创建了"代理"网络。我以为networks:
在Docker-Compose创建网络中,因此我决定将其删除,仅在我的服务(Eliko(标题中留下网络名称。但是后来我收到了一个错误: ERROR: Service "eliko" uses an undefined network "proxy"
所以我的问题是..这到底是什么:
networks:
proxy:
external: true
据我了解,这是:
networks:
- proxy
连接到网络,因此以前应该创建网络?如果我使用docker network create
创建网络,它是相同的还是?
这里有点困惑...
顶级 networks
stanza正在告诉docker-compose"这些是存在的网络"。没有这些,当您尝试将eliko
容器连接到proxy
网络时,Docker-Compose将不知道该怎么办。你会得到这个:
ERROR: Service "eliko" uses an undefined network "proxy"
请记住,在标准案例中,Docker-Compose中的网络以项目名称为前缀。如果您有非外部网络,则是这样:
version: "3"
networks:
proxy:
services:
eliko:
image: irmscher/eliko:v1
labels:
- traefik.backend=eliko
- traefik.frontend.rule=Host:eliko.bloggercraft.com
- traefik.docker.network=proxy
networks:
- proxy
然后,撰写实际上将创建一个名为project_proxy
的网络(默认情况下,project
是包含docker-compose.yml
的目录的名称(。仅仅是因为您已将网络声明为external
,才知道您要使用现有网络。