慕码人2483693
docker run创建Docker contains时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:host模式,使用--net=host指定。container模式,使用--net=container:NAME_or_ID指定。none模式,使用--net=none指定。bridge模式,使用--net=bridge指定,默认设置。containers启动后会通过DHCP获取一个地址.网络:em1是内网,em2是外网(设置本次外网ip是1.1.1.3),docker0是docker的桥接网卡独立ip:设置本次独立ip是1.1.1.4操作方法:1、为独立ip与外网卡em2做网卡别名ifconfig em2:0 1.1.1.4 netmask 255.255.255.0 up2、启动新容器docker run --restart always --privileged -d --name='test' docker.com:5000/centos6-http:new /usr/bin/supervisord3. 获取容器ipdocker inspect test|grep -i add比如本次获取的ip是172.17.0.5在宿主机的iptables里做dnat映射默认的input、output、forward我不做设置,仅设置nat*nat:PREROUTING ACCEPT [15:1542]:POSTROUTING ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:DOCKER - [0:0]-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER-A POSTROUTING -j MASQUERADE-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER-A DOCKER -d 1.1.1.4 ! -i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.5:80-A DOCKER -d 1.1.1.4 ! -i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.5:443COMMIT其中-A DOCKER是做的dnat设置,-d是指定访问的外网ip地址,就是我刚才1.1.1.4,另外dport是允许访问的端口,--to-destination是容器的ip与内部端口