【问题标题】:Why does docker-compose say a network is undefined, but "docker network ls" shows it?为什么 docker-compose 说网络未定义,但“docker network ls”显示它?
【发布时间】:2019-08-12 22:07:12
【问题描述】:

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

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_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

知道为什么吗?

【问题讨论】:

    标签: docker redis docker-compose


    【解决方案1】:

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

    networks:
      my_network:
        external:
          name: my_network
    

    【讨论】:

    • 只是为了检查:如果外部网络被命名为 my_network_1 并且在内部,我将网络定义为 my_network 但将名称设置为 my_network_1 并在另一个 docker compose 中定义一个网络 @987654326 @ 但是那个名字设置为my_network_2,他们会正确地在不同的网络上吗?
    • "my_network" 在这种情况下只是这个 compose.yml 的本地范围。真正重要的是外部声明的名称。因此,如果 network_1 和 network_2 都具有相同的外部网络名称,它们将在同一个网络上。
    猜你喜欢
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    相关资源
    最近更新 更多