众所周知,docker有三种默认的网络模式,分别是:
- bridge
- host
- none
然后需要注意的就是内核转发这个,一定不要忘了!配置方法如下
echo -e "net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf sysctl -p
执行结果如下:
root@dell-PC:~# echo -e "net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf root@dell-PC:~# sysctl -p net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 root@dell-PC:~#
参数解释:(后面再更新)
切入正题
第一个解决方法:
环境如下:
- 戴尔笔记本,双网卡
- 系统:deepin15
- docker版本:19.03.1
问题如下:
使用默认网络模式无法连接互联网(宿主机已连接互联网)
解决办法:指定网络模式为主机网络,方法如下:
docker run -it --rm --network=host centos /bin/bash