【问题标题】:Service "nginx-proxy" uses an undefined network "nginx-proxy"服务“nginx-proxy”使用未定义的网络“nginx-proxy”
【发布时间】:2021-01-26 02:49:18
【问题描述】:

我正在尝试使用 Nginx-Proxy 在 Ubuntu VPS 上的 docker 容器内运行 WordPress 站点。

我创建了以下docker-compose.yml 文件


version: '3.4'
services:

  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    restart: always
    networks:
      - nginx-proxy
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro
      - /etc/certificates:/etc/nginx/certs

  wordpress:
    image: wordpress
    container_name: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      - VIRTUAL_HOST=wordpress.domain.com
      - VIRTUAL_PORT=5500
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=db_username
      - WORDPRESS_DB_PASSWORD=db_password
      - WORDPRESS_DB_NAME=db_name
    depends_on:
      - nginx-proxy
      - db
    networks:
      - nginx-proxy
    volumes:
      - wordpress:/var/www/html
    ports:
      - 5500:5500
    expose:
      - 5500
  db:
    image: mysql:latest
    container_name: db
    restart: always
    environment:
       MYSQL_DATABASE: db_name
       MYSQL_USER: db_username
       MYSQL_PASSWORD: db_password
       MySQL_RANDOM_ROOT_PASSWORD: '1'
    depends_on:
      - nginx-proxy
    networks:
      - nginx-proxy
    volumes:
      - db:/var/lib/mysql
    ports:
      - 5600:5600
    expose:
      - 5600
volumes:
   wordpress:
   db:

每次我运行docker-compose up 时都会出现以下错误

服务“nginx-proxy”使用未定义的网络“nginx-proxy”

我使用以下命令创建了一个网络

docker network create nginx-proxy

这是docker network ls的输出

为什么会出现这个错误?我该如何解决?

【问题讨论】:

    标签: docker nginx docker-compose docker-container jwilder-nginx-proxy


    【解决方案1】:

    您在每个服务 networks: 块中命名的任何内容都需要在顶级 networks: 块中声明。

    version: '3.4'
    services:
      nginx-proxy:
        networks:
          - nginx-proxy # <-- matches below
    volumes: { ... }
    networks:
      nginx-proxy:      # <-- matches above
        # may be empty, but this block is required
    

    如果您根本没有声明任何networks:,请撰写creates a network named default and attaches containers to it。对于几乎所有用途,这就是您所需要的。因此,完全删除 networks: 块可能更简单。

    version: '3.4'
    services:
      nginx-proxy:
        image: jwilder/nginx-proxy
        # No networks:; just use automatic [default]
    

    (您同样不需要在 Compose 级别手动提供 container_name:expose: 端口。)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2018-01-28
    • 2019-12-29
    • 2020-12-31
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多