眾所周知,docker有三種默認的網絡模式,分別是:
- bridge
- host
- none
然后需要注意的就是內核轉發這個,一定不要忘了!配置方法如下
echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf sysctl -p
執行結果如下:
root@dell-PC:~# echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.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