如何为 docker 分配静态 ip,并将其与 docker-compose 一起使用

如何为 docker 分配静态 ip,并将其与 docker-compose 一起使用

我在运行 Windows Server 2012 的计算机上安装了 docker,其 ip 为 192.168.0.70 掩码为 255.255.255.0,子网 192.168.0.x 中没有 DHCP;我设置了桥接连接,但现有的 dhcp 给出 192.168.200.43。我想为 docker 容器(它将是 xibo)设置一个静态 ip(192.168.0.199)。我将如何在 docker-compose 中使用静态 ip?

答案1

免责声明:我从未在 Windows 上尝试过此操作。

下面是我使用的精简示例docker-compose.yml

version: '2'

services:
  halfgaarservice:
    image: someimage
    hostname: halfgaarservice
    networks:
      halfgaarnetwork:
        ipv4_address: 10.199.1.1

networks:
  halfgaarnetwork:
    driver: bridge
    driver_opts:
      com.docker.network.bridge.name: "halfgaarbridge"
    ipam:
      driver: default
      config:
        - subnet: 10.199.0.0/16
          gateway: 10.199.0.1

当您分配静态 IP 时,您需要定义自己的网络,如示例所示。

当网络配置至关重要时,我更喜欢自己完成所有路由,因此我设置/etc/docker/daemon.json

{                                                                                                                                                                                                                                                                            
    "iptables": false                                                                                                                                                                                                                                                          
}

但我不知道在 Windows 上如何配置它。

我这样做的原因是因为我有自己的 iptables 管理,并且这与 dockerd 在运行时调整 iptables 不太兼容。

相关内容