Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
网络与docker compose后定义的名称不同?_Docker_Docker Compose_Docker Networking - Fatal编程技术网

网络与docker compose后定义的名称不同?

网络与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的网络,但是应该创建的网络并不存在,即使
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

你好检查服务文件中的点符号。。。对于网络名称。。。这可能是问题的根源。