桥接模式:bridge
docker容器默认三种网络模式:
bridge: 桥接模式 [默认网络模式]
host: 主机模式
none: 无网络模式 [不常用-测试用]
容器内安装
yum -y install net-tools
容器内执行查看网路路由的配置,网关等
route -n
[root@554a2b845d11 /]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.17.0.1 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
说明容器的网关都是172.17.0.1
ip addr 查看容器内的IP地址情况
没启动一个容器,即多一个容器网卡
宿主机安装
yum install -y bridge-utils
桥接模式查看桥接情况:
[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.024252d62730 no veth3bbaad5
veth6749a7f
docker0网卡可桥接多个容器网卡,这样宿主机即可和各个容器相互连接

桥接网络模式.png
启动nginx容器命令并防火墙放开80端口:
docker run -d --net=host mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
--net=host 表示指定host主机网络模式{若不指定默认采用桥接模式}
这种启动容器方式是无IP地址,即复用宿主机的IP地址和端口。
docker inspect 37eef08aaff2
查看上述指定host网络模式的容器详情,可得知容器无IP地址无网关,即复用宿主机的IP地址和端口。
"Gateway": "",
"IPAddress": ""
直接使用宿主机IP:80 访问nginx{nginx默认启动端口80}
如果访问不通,可设置防火墙
查看防火墙状态:
firewall-cmd --state
防火墙放开指定端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新加载防火墙:
firewall-cmd --reload

host网络模式.png
网友评论