我一直在说这个网络是不确定的。 错误:服务“前端网络”使用未定义的网络“前端网络” 但是,我看到有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
答案 0 :(得分:4)
您需要将此网络作为外部网络添加到Compose文件中,如下所示:
networks:
frontend-network:
external: true
您可以在此处的基座中https://docs.docker.com/compose/compose-file/#external-1阅读有关此内容。
答案 1 :(得分:0)
您需要创建一个用户定义的网络:
docker network create etl_dev
之后,请确保您将其添加到具有顶级 networks:
的 yaml 中,这与服务级别相同。
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
如果您使用的是 swarm,请确保将 -d overlay
添加到 docker network create 命令。请参阅网络 docs。