![如何为 docker 分配静态 ip,并将其与 docker-compose 一起使用](https://linux22.com/image/730664/%E5%A6%82%E4%BD%95%E4%B8%BA%20docker%20%E5%88%86%E9%85%8D%E9%9D%99%E6%80%81%20ip%EF%BC%8C%E5%B9%B6%E5%B0%86%E5%85%B6%E4%B8%8E%20docker-compose%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.png)
我在运行 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 不太兼容。