我在QNAP raid機器上運行了docker-1.9.1
。它有使用子網10.0.3.0/24
的默認bridge
網絡。在iptables的我看到nat
表的規則:Docker是否在橋接網絡的iptables中自動化IP僞裝規則?
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
我假設泊塢創造了這個規則本身。
我創建了一個新的橋接網絡:
docker network create \
--gateway=10.0.5.1 \
--subnet=10.0.5.0/24 \
-o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" \
-o "com.docker.network.bridge.enable_icc"="true" \
-o "com.docker.network.driver.mtu"="1500" \
-o "com.docker.network.bridge.name"="lxcbr1" \
-o "com.docker.network.bridge.enable_ip_masquerade"="true" \
isolated_nw
這並不創造iptables的一個規則。我錯過了一步嗎?
以下是完整安裝命令和結果,複製@larsks'例如:
[/share/Containers] # docker --version
Docker version 1.9.1, build 147ce3e
[/share/Containers] # iptables -t nat -S | grep 10.0.5.0
[/share/Containers] # docker network create \
> --gateway=10.0.5.1 \
> --subnet=10.0.5.0/24 \
> -o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" \
> -o "com.docker.network.bridge.enable_icc"="true" \
> -o "com.docker.network.driver.mtu"="1500" \
> -o "com.docker.network.bridge.name"="lxcbr1" \
> -o "com.docker.network.bridge.enable_ip_masquerade"="true" \
> isolated_nw
a7b5c938008169f32fcdfc1d9409716b725cc916b30f472ac6ec2a1d71fb77f0
[/share/Containers] # iptables -t nat -S | grep 10.0.5.0
[/share/Containers] # iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
[/share/Containers] #
您是否知道在https://docs.docker.com/engine/userguide/containers/networkingcontainers/上創建自己的橋接網絡? –
我在該頁面上使用了例子來創建我自己的網絡。看起來不像是覆蓋ip masquerade或iptables。 –
它......實際上。你可以看到我在答案中運行的命令的實際順序。或者你可以看到這個,這是我運行相同測試的實際會話:https://asciinema.org/a/9ipp0n6izkcb3iqk2tdgmpx1i – larsks