地址无效。它不属于该网络的任何子网

问题描述 投票:0回答:3

每当我跑步时:

     docker-compose -f net.yaml up -d

我收到以下错误:

     Creating network "twisted_static-network" with the default driver.
     Creating server ... error

     ERROR: for server  Cannot start service tcp_server: Invalid address 192.168.1.1: It 
     does not belong to any of this network's subnets

     ERROR: for tcp_server  Cannot start service tcp_server: Invalid address 
     192.168.1.1: It does not belong to any of this network's subnets
     ERROR: Encountered errors while bringing up the project.

我已经尝试过:

  1. prune
    docker 网络,
  2. 删除并重新安装docker,
  3. 更改了ipv4地址。

但问题永远不会改变。

net.yaml

    version: '3'

    services:
      tcp_server:
        image: twisted_tcp:1.0
        container_name: server
        environment:
          - LOCAL_IP=192.168.1.1
        ports:
          - 5679:5678
        privileged: true
        volumes:
          - ./twisted_server.py:/run/twisted_server.py 
        command: >
            bash -c pip3 install twisted
            && "python3 twisted_server.py"
        networks:
          static-network:
            ipv4_address: 192.168.1.1

      tcp_client:
        image: twisted_tcp:1.0    
        depends_on:
          - tcp_server
        container_name: client
        environment:
          - LOCAL_IP=192.168.1.2
        ports:
          - 5680:5678
        privileged: true
        volumes:
          - ./twisted_client.py:/run/twisted_client.py
        command: >
          bash -c pip3 install twisted
                  && "python3 twisted_client.py"
        networks:
          static-network:
            ipv4_address: 192.168.1.2


    networks:
      static-network:
        ipam:
          config:
            - subnet: 192.168.0.0/24
              gateway: 192.168.0.1
docker docker-compose ipv4 subnet
3个回答
1
投票

它也应该适用于 192.168.1.0/24。问题是配置中的 IP 分配超出了子网范围。


0
投票

解决了!

问题最终变成了

-subnet
中的
net.yaml

  1. 我改变了这个:
    -subnet: 192.168.0.0/24
  2. 对此:
    -subnet: 192.168.0.0/16

然后就可以了!


0
投票

始终尝试从指定的网络提供 IP。它对我来说效果很好,请检查下面

我的网络是

# docker network create --subnet 198.168.10.0/24 --driver bridge prod
341a36aaf31d71d5fdf2721c94a429a70fd5ae60f083d6b7a72f71916393534f

因此,从上面的命令可以清楚地看出,我们需要从我们的网络中分配IP,即

198.168.10.0/24

# docker run -d --name=web10 --network prod --ip 198.168.10.10 nginx
ed8a251ad65f5ac9576d613bb66d33e47ffbbca8cee7ef7cb8681bedb1ea7c81
© www.soinside.com 2019 - 2024. All rights reserved.