网络与docker compose后定义的名称不同?
我尝试在一个合成文件中创建多个docker的网络,但是应该创建的网络并不存在,即使网络与docker compose后定义的名称不同?,docker,docker-compose,docker-networking,Docker,Docker Compose,Docker Networking,我尝试在一个合成文件中创建多个docker的网络,但是应该创建的网络并不存在,即使docker compose up运行良好: docker compose: networks: allsports.test: driver: bridge services: allsports.test.nginx: build: context: ./allsports.test.nginx/ container_name: allsports.test.ngin
docker compose up
运行良好:
docker compose:
networks:
allsports.test:
driver: bridge
services:
allsports.test.nginx:
build:
context: ./allsports.test.nginx/
container_name: allsports.test.nginx
image: allsports.test.nginx
networks:
- allsports.test
ports:
- 380:80
restart: on-failure
allsports.test.redis:
build:
context: ./allsports.test.redis/
container_name: allsports.test.redis
image: allsports.test.redis
networks:
- allsports.test
restart: on-failure
version: '3.7'
运行docker compose up-d后
:
Starting allsports.test.nginx ... done
Starting allsports.test.redis ... done
但是现在我尝试检查网络:sudocker inspect allsports.app
表示网络不存在。
如果我看到sudo docker网络ls,我也看不到网络
如果我选中其中一个已创建的Docker:
sudo docker inspect allsports.test.nginx -f "{{.NetworkSettings.Networks}}"
> map[allsportstest_allsports.test:0xc000604000]
是什么原因导致此重命名以及(如何)从逻辑上查找通过检查compose文件创建的实际网络?默认
docker compose创建的名称使用compose项目名称作为前缀,以避免命名冲突
默认情况下,项目名称是包含docker compose.yml
的文件夹的名称。您可以通过(在shell中或.env
文件中)或使用自定义
默认的docker
名称的计算方式取决于对象的类型。例如,默认容器名称是从模式\uuuu
创建的。但您通常可以在需要时使用自己的自定义名称(正如您在上面的compose文件中所做的那样,命名您的唯一服务容器)
对于网络,默认名称为。
,如问题中最后一个inspect命令所述。因此,您完全可以从文件中的compose项目名称和网络标识符推断出该名称
同时,与容器一样,您可以使用来配置自己的自定义名称,该名称将按原样使用。在这种情况下,您必须自己处理潜在的命名冲突
networks:
allsports.test:
driver: bridge
name: allports.test
你好检查服务文件中的点符号。。。对于网络名称。。。这可能是问题的根源。