为什么docker compose说网络未定义,但;docker网络ls“;显示出来了吗?
我已使用以下工具创建了一个网络:为什么docker compose说网络未定义,但;docker网络ls“;显示出来了吗?,docker,redis,docker-compose,Docker,Redis,Docker Compose,我已使用以下工具创建了一个网络: docker network create my_network 当我运行docker network ls时,我看到: NETWORK ID NAME DRIVER SCOPE 80e99e7a8f98 bridge
docker network create my_network
当我运行docker network ls时,我看到:
NETWORK ID NAME DRIVER SCOPE
80e99e7a8f98 bridge bridge local
ff48b8c6586b host host local
cdf5969b458d none null local
9bd1e13004b7 my_network bridge local
但当我尝试使用该网络创建redis节点时,它会说:
服务“redis”使用未定义的网络“my_网络”
docker-compose.yml
知道原因吗?您需要在docker compose文件中定义一个预先存在的网络,如中所述
只需检查:如果外部网络名为
my_network\u 1
,而内部网络名为my_network
,我将网络定义为my_network\u 1
,但将名称设置为my_network\u 2
,然后在另一个docker compose中定义一个网络my_network
,它们是否正确地位于不同的网络上?本例中的“my_network”只是这个compose.yml的一个局部范围。真正重要的是外部声明的名称。因此,如果网络_1和网络_2对于外部都具有相同的网络名称,则它们将位于同一网络上。
version: '2.1'
services:
redis:
image: redis
container_name: redis
environment:
- ALLOW_EMPTY_PASSWORD=yes
ports:
- 6379:6379
networks:
- my_network
networks:
my_network:
external:
name: my_network