Loading
0

阿里云ECS服务器搭建Docker后端口通但外部无法访问Docker解决方法
被墙跳转TG:@qianhenetwork QQ 851617266

301免备案跳转微信公众号
腾讯云服务器大促销。
华为服务器


前言:工作中经常遇到用户服务器安装Docker后有各种无法访问的问题,本文章介绍一个典型的问题,用户使用阿里云ECS服务器Docker中安装了数据库应用,服务启动正常,端口监听正常,外部检测该端口也是通畅的,但外部始终无法成功访问这个端口,数据库也有开启远程访问权限,容器端口端口映射也正常,Docker容器所有设置都检查了,没问题,用户反馈在其他云服务器提供商安装无问题,这下就犯难了,不知道如何入手检查这个问题
过程:在引导用户解决问题的过程中用户执行了ifconfig 命令,查看了容器的ip,发现容器默认的ip是172段,如图,而阿里云的内网ip也是172段,通过搜索资料发现也有用户遇到过类似问题。
 

原因:容器默认的ip为172.17.0.1 ,而阿里云的服务器内网ip一般也是172段开头,所以两者IP有冲突。
解决:知道原因了就方便解决了,将Docker容器的ip段修改一下,修改方法可参考如下命令:
1、安装docker后默认会生成 /etc/docker/daemon.json 将daemon.json文件复制备份

cp /etc/docker/daemon.json /etc/docker/daemon.json_bak

2、vi 编辑/etc/docker/daemon.json文件,写入如下代码保存,192.168.1.5/24是设置的容器ip段,也可更换为非172的其他ip段。
该文件默认为空,若本身已经有内容,请不要删除,请查找bip对应值修改一下,或者单独添加到文件结尾

{
     "registry-mirrors": [
         "https://docs.docker.com"
      ],
     "bip": "192.168.1.5/24"
}

3、重启容器服务

service docker restart

重启容器实例,将8b92e4b387ed更换为您的容器实例名或容器id

docker start 8b92e4b387ed

4、重启后在执行命令 ifconfig 即可看到容器的ip变成了192.168.1.5了,如图。

按照如上设置后在检测可以正常连接了.

 
301免备案跳转微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://www.zfcdn.xyz/showinfo-3-36187-0.html
亲爱的:被墙域名跳转TG:@qianhenetwork QQ:851617266,可否收藏+评论+分享呢?
上一篇:CentOS8.x系统停止维护yum无法使用解决方法
下一篇:Docker容器内部执行命令报错bash: ping: command not found 解决方法