为什么 docker-compose 说网络未定义,但“docker network ls”显示它?

Don*_*mmy 3 redis docker docker-compose

我使用以下方法创建了一个网络:

docker network create my_network
Run Code Online (Sandbox Code Playgroud)

当我跑步时,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
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用该网络创建一个 redis 节点时,它说:

服务“redis”使用未定义的网络“my_network”

docker-compose.yml

version: '2.1'
services:

redis:
    image: redis
    container_name: redis
    environment:
    - ALLOW_EMPTY_PASSWORD=yes
    ports:
    - 6379:6379
    networks: 
    - my_network
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

Fed*_*kun 5

您需要在 docker-compose 文件中定义一个预先存在的网络,如文档中所述。

networks:
  my_network:
    external:
      name: my_network
Run Code Online (Sandbox Code Playgroud)