vmware中使用net方式配置docker静态ip
1配置vmware中nat方式上网:2.虚拟机中安装centos7,假设通过net方式上网获得的ip为192.168.146.1283.安装docker,省略4.启动一个容器:docker run -idt --name=slave1 --net=none --privileged ubantu:v0.0.15.使用pipewor
1配置vmware中nat方式上网:
2.虚拟机中安装centos7,假设通过net方式上网获得的ip为192.168.146.128
3.安装docker,省略
4.启动一个容器:
docker run -idt --name=slave1 --net=none --privileged ubantu:v0.0.1
5.使用pipework,创建虚拟网桥,并且设置ip和指定网关:
pipework安装的过程省略:
pipework br0 slave1 192.168.146.141/24@192.168.146.140
注意:pipework会自动创建网关,但创建完成网关之后,并没有为网关分配ip:
为网关指定ip:
[root@localhost ~]# ifconfig br0 192.168.146.140
配置完成之后。ping测试:
宿主机ping容器:
容器ping主机:
[root@localhost ~]# docker exec -it slave1 /bin/bash
6.容器不能ping通外网:
由于使用了桥接的使用方式,需要查看防火墙中是否有指定的nat转发规则:
首先我们从容器ping一下外网:
不能ping通外网:
查看防火墙中nat表的转发规则:
iptables -t nat -vnL POSTROUTING --line-number
没有192.168网段的转发规则,
插入一条规则:
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.146.140/16 ! -o br0 -j MASQUERADE
再次查看规则:
再次ping外网:
如果还是ping不通外网,需要检查本机中的ip转发是否开启:
查看ip转发生否开启:
sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0
如果显示0,则表示ip转发功能没有开启,
开启的办法:(重启机器会失效)
sysctl -w net.ipv4.ip_forward=1
永久性的设置办法:
vi /etc/sysctl.conf
加入:net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
发现一个奇怪的问题。即使宿主机的防火墙关闭状态,容器ping通外网任然存在问题,
7.主机ping虚拟机中的容器:
将net方式上网的网卡添加到虚拟网桥中:
brctl addif br0 eno50332208,
再次从主机ping虚拟机:
更多推荐
所有评论(0)