docker-compose.yaml 中network配置问题

我配置的docker-compose.yaml如下:

redisClusterNode1Master:
    container_name: redisClusterNode1Master
    image: "redis:3.2"
    networks:
    - kay_default
    ports:
        - "8081:6379"
    privileged: true

执行 docker-compose up -d 命令时报错

ERROR: Service "redisClusterNode1Master" uses an undefined network "kay_default"

提示没有该网络,即使后面我自己手动创建 docker network create kay_default

NETWORK ID          NAME                DRIVER              SCOPE
f25f324bc925        bridge              bridge              local
b5c6f7d5f6c6        host                host                local
a890e95d6d4a        kay_default         bridge              local

了也一直报该错误.

请问这是怎么回事?

阅读 21.6k
2 个回答

需要在services同级声明一下外部网络

networks:
  kay_default:
    external: true

version: "3"
services:
  nginx:
    image: nginx:stable-alpine
    container_name: nginx
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
    networks:
      - laravel
  php:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: php
    volumes:
        - ./src:/var/www
    working_dir: /var/www
    # command: "php artisan serve --host=0.0.0.0 --port=8000"
    ports:
      - "9000:9000"
    networks:
      - laravel
networks:
    laravel:
      external: true

要做两个事儿:

  1. 使用docker network create [name] 命令创建网络
  2. 在docker-compose.yml文件中,于services同级、也就是根级,写一个networks

另外强调一下,必须在compose.yml中指明version大于1才可以使用networks。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏