错误:服务“ xxx”使用未定义的网络“ xxx”

Who*_*AmI 8 linux docker docker-compose devops

一直说我这个网络是不确定的。错误:服务“前端网络”使用未定义的网络“前端网络”但是,我看到存在带有docker network ls的网络。我想念的是什么:(我需要您的帮助。我已经在Google上学到很多,但是找不到正确的解决方案。

version: "3.3"
    services:
      web:
        build: ./Docker
        container_name: apache
        ports:
        - "80:80"
        volumes:
        - /home/denis/public-html:/usr/local/apache2/htdocs/
        restart: always
        networks:
        - frontend
        labels:
        - webstack
      mara:
        image: mariadb:latest
        container_name: mara
        ports:
        - "3306:3306"
        volumes:
        - ~/MariyaDb:/var/lib/mysql
        depends_on:
        - "web"
        restart: always
        networks:
        - frontend
        labels:
        - webstack
        environment:
        - MYSQL_ROOT_PASSWORD=example
      adminer:
        image: adminer
        container_name: adminer
        ports:
        - "8080:8080"
        depends_on:
        - "mara"
        restart: always
        networks:
        - frontend-network
        labels:
        - webstack
Run Code Online (Sandbox Code Playgroud)

Ric*_*pie 15

您需要使用以下命令创建用户定义的网络:

docker network create etl_dev

之后,请确保将其添加到带有 top-level 的 yaml 中networks:,这与服务级别相同。

version: "3.9"

networks:
    etl_dev:
        external: true

services:
    local_database:
        image: postgres:12
        networks:
            - etl_dev
        volumes:
            - /home/local_postgres_data:/var/lib/postgresql/data
        environment:
            POSTGRES_USER_FILE: /run/secrets/etl_pg_usr_v1
            POSTGRES_PASSWORD_FILE: /run/secrets/etl_pg_pass_v1

Run Code Online (Sandbox Code Playgroud)

如果您使用 swarm,请确保添加-d overlay到 docker network create 命令。请参阅网络文档


Mar*_*ark 9

您需要像下面这样将此网络作为外部网络添加到Compose文件中:

networks:
  frontend-network:
    external: true
Run Code Online (Sandbox Code Playgroud)

您可以在此处的码头中阅读有关此内容:https : //docs.docker.com/compose/compose-file/#external-1