关于docker容器redis实例在外部访问不到问题

检查分析

 1.是否能访问当运行docker容器虚拟机(主机)地址

  通过Xshell工具连接到宿主机和外部telnet宿主机ssh端口均正常

2.查看docker容器的实例状态以及映射端口是否正常

docker ps -a

容器实例和端口映射都正常

那么我们继续排查

3. 虚拟机对应的端口号是否开启或者防墙是否关闭

    以我的虚拟机为例,我的镜像版本是CentOS-7,防火墙是firewalld管理。

输入systemctl status firewalld 查看防火墙状态

    如果是run的状态 执行命令

   执行  firewall-cmd --zone=public --list-ports

     查看public下所有开放的端口是否有该实例映射端口,没有就添加

我登录虚拟机查看后我的防火墙状态是loaded的状态,所以不是防火墙端口原因

selinux 也是disabled

4.查看一下容器实例的配置文件是不是正常

  因为我是bind的是宿主机的配置文件也就是通过挂在卷方式,-v /宿主机redis.conf:/容器实例redis.conf  

执行   docker inspect <container_id_or_name>

查看bind的配置也没问题呀

无F可说,明明宿主机上的其他中间件都可以访问的呀,这是docker的是啥毛病,chatgpt走起??

工作时间,还是不要这么高调了,会显得“智多星”

网上搜索翻页还可以努力一下,

111001011001100010111111111001011001100010111111111001011001100010111111

终于找到一篇解决了问题

5.转发出问题了,Linux转发是要开启内核转发功能

按照文章步骤,查询了一下,果然,内核转发没开启

    执行

 iptables -t nat -L

查看iptables转发是否正常

查看均正常,往下走

检查内核转发是否打开

sysctl net.ipv4.ip_forward

发现内核转发是处于关闭状态的(0代表内核转发没有打开)
echo命令开启内核转发

通过客户端去连接

正常访问了。

但是具体此种情况为啥发生,仍需要排查,明明正常使用,突然出现问题,挺cd。

大家可以去看原文 Itqm 滑动验证页面icon-default.png?t=N7T8https://segmentfault.com/a/1190000044235072

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值