在服务器上安装docker,部署好应用之后,本地无法ping通服务器,但其他网段的是可以的。查看端口发现,docker容器的ip网段和本地电脑的网段重复了,所以造成该网段无法ping通。具体如下:
查问题:
telnet8080端口不通,ping不通
查看端口占用情况,发现8080端口是docker服务在占用
发现docker服务使用的ip是172.17.0.2和本地的部分网段是重复的,这就造成了本地在172.17.0.1-172.17.255.255网段中的ip无法访问服务器。
解决方法:
1.修改容器的ip网段,在/etc/docker/daemon.json,(docker安装之后不会默认配置daemon.json文件)如果没有daemon.json文件,手动创建。配置如下:
[***@***-test docker]$ cat daemon.json
{
"bip":"172.14.0.1/24"
}
由于只需要修改docker的ip网段,所以只加了bip的配置,它限制了所在节点容器获得的IP范围,其他配置详解可参考博客(https://www.cnblogs.com/bulh/articles/12523099.html)
2.生效
(1)daemon.json文件生效
sudo systemctl daemon-reload
(2)重启docker服务
sudo systemctl restart docker.service
(3)查看docker状态
sudo systemctl status docker.service