更改 docker 网络中的网关

更改 docker 网络中的网关

我正在尝试创建多个 Docker(来自同一个图像)并将它们放在一个子网中,在那里我可以像使用多台机器一样使用它们。

version: "3"

services:
    machine001:
        container_name: "machine001"
        build: .
        image: "test-machine"
        ports:
            - "1337"
            - "22"
        networks:
            net:
                ipv4_address: 172.20.1.1

    machine002:
        container_name: "machine002"
        build: .
        image: "test-machine"
        ports:
            - "1337"
            - "22"
        networks:
            net:
                ipv4_address: 172.20.1.2

networks:
   net:
        driver: bridge
        ipam:
            config:
                - subnet: 172.20.1.0/24

然而,在编写时,我收到第一台机器的错误,并收到一条错误消息Address already in use(第二台机器工作正常),因此通过浏览了一下,我认为该地址可能172.20.1.1是为网关保留的,于是我尝试更改它,然后另一个问题

services:
    # same as before...

networks:
   net:
        driver: bridge
        ipam:
            config:
                - driver: default
                  subnet: 172.20.1.0/24
                  gateway: 172.20.1.254

然而,Compose 不喜欢这样,它说

错误:Compose 文件'./docker-compose.yml' 无效,因为:networks.net.ipam.config 值不允许附加属性('gateway'、'driver' 是意外的)

更改子网网关的正确方法是什么?这样能提供地址吗172.20.1.1

答案1

就我个人而言,网关在 docker compose 版本 3 中不起作用,我不得不返回到版本 2,之后一切正常,我使用 docker network inspect network_name 并且现在看到我定义的网关。

所有这些都在 docker-compose 中工作

相关内容