一、现象问题记录
环境为rhel7.5
使用docker搭建一个大数据环境,docker容器突然不能连接外网了,之前可以
现象就是可以ping通宿主机,宿主机能上网,docker容器之间也通,但docker容器不能上网
二、网上大约4种解决
1.转发没有设置,需要net.ipv4.ip_forward=1
2.DNS设置,适用于能ping能外网IP但不能ping域名问题,设置DNS 8.8.8.8或114.114.114.114
3.docker服务问题,重启docker服务
4.docker0虚拟网桥问题,重新建网桥
这四个问题我都不是,试着解决好几天,都快要重装系统了后来忍住了,最后更改docker0的默认网段可以了。可能是最近网内用户有新用172段的地址,冲突了,把我的网置无效了
三、修改docker0默认步骤,网上有,这里简要记下
1.停止窗口,删除docker0
service docker stop
ip link set dev docker0 down
brctl delbr docker0
2.修改 vi /etc/docker/daemon.json 改172.17.0.1默认段改为192.168.100.0
{
"registry-mirrors":[ "https://ao8i8s13.mirror.aliyuncs.com","http://hub- mirror.c.163.com" ],
"live-restore":true,
"bip":"192.168.100.1/24"
}
3.重启docker服务
service docker start
4.查看配置
ifconfig docker0
四、docker联网方式介绍
docker默认是网桥,建个虚拟的docker0,默认网段是172.17.0.1。宿主机上的docker使用NAT方式将dock0和宿主机的上网卡绑定,这就需要宿主机设置转发标志net.ipv4.ip_forward=1
查看命令
sysctl -p
写入1的命令
echo 1 > /proc/sys/net/ipv4/ip_forward
或者用vi
vi /etc/sysctl.conf
容器网址
启动一个容器,172.17.0.1最后一位就加1作为容器的IP地址。
docker也可以使用host方式联网,--network=host这种方式容器没有ip,网络与宿主机一样
也可以用macvlan联网,即虚拟网卡,就是模拟机器上两块网卡连接不同的网段
五、网址类型介绍
ipv4 网址分A、B、C、D、E类,D和E为多播和预留不分主机和网络地址
前三类私有地址如下,各类1和255为指示本网和本网广播,可用地址范围
A级:10.0.0.1 - 10.255.255.254 掩码255.0.0.0
B级:172.16.0.1 - 172.31.255.254 掩码255.255.0.0
C级:192.168.0.1 - 192.168.255.254 掩码255.255.255.0
在填写ip时 ip/24就是表示C类,如果是172地址就是/16,与掩码位数一至