小编ram*_*amz的帖子

用nat设置docker容器

我正在设置两个泊坞容器

     container1                 container2
     |        |                     |
    eth0     eth1                   |
     |        |                    eth1
   docker0   docker1<----------------
     |            
     |
   internet
Run Code Online (Sandbox Code Playgroud)

docker0和docker1是桥梁.

我在主机和容器中都有ip转发为1.我有设置

iptables -I POSTROUTING -t nat -o eth0 -j MASQUERADE in container 1
Run Code Online (Sandbox Code Playgroud)

仍然我无法ping从容器2到互联网的任何东西.我可以看到正在容器1的eth1接收数据包.

OS: ubuntu 13.10
docker version: 0.11.1, build fb99f99
Run Code Online (Sandbox Code Playgroud)

我错过了一些配置吗?

重现步骤:

SERV=$(docker run --privileged=true -i -d -t -v ~/Projects/code/myproject/build:/build:ro debian:7.4 /bin/bash)
CLI=$(docker run --privileged=true -i -d -t -v ~/Projects/code/myproject/build:/build:ro debian:7.4 /bin/bash)
sudo pipework br1 $SERV 10.1.0.1/8
sudo pipework br1 $CLI 10.1.0.3/8 
Run Code Online (Sandbox Code Playgroud)

在$ SERV:iptables -I POSTROUTING -t nat -o eth0 …

containers iptables nat docker

5
推荐指数
1
解决办法
4775
查看次数

标签 统计

containers ×1

docker ×1

iptables ×1

nat ×1