You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法连接Docker内的MySQL和Redis但可连接宿主机CentOS的MySQL,如何排查?

Docker部署MySQL、Redis无法连接问题排查方案
  • 首先确认连接参数配置
    你的Docker容器端口映射规则如下:

    CONTAINER ID   IMAGE       COMMAND                  CREATED        STATUS          PORTS                                                  NAMES
    3a345949f38a   redis       "docker-entrypoint.s…"   20 hours ago   Up 5 seconds    0.0.0.0:6380->6379/tcp, :::6380->6379/tcp              redis
    b4189630fe88   mysql:5.7   "docker-entrypoint.s…"   30 hours ago   Up 45 minutes   33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp   mysql
    

    连接时需注意:

    • 连接Docker内MySQL:主机填宿主机IP 172.16.33.5,端口填3307,不要用默认的3306,你测试3306端口访问的是宿主机本地部署的MySQL服务
    • 连接Docker内Redis:主机填宿主机IP 172.16.33.5,端口填6380,不要用默认的6379
    • 不要用localhost作为连接主机,会走本地套接字默认访问宿主机本地服务,不会走Docker端口映射
  • 排查防火墙和SELinux拦截
    CentOS系统默认的firewalld和SELinux大概率会拦截外部对Docker映射端口的访问,先临时关闭测试:

    # 临时关闭firewalld
    systemctl stop firewalld
    # 临时关闭SELinux
    setenforce 0
    

    测试连接正常后,再把对应端口加入防火墙白名单永久生效:

    firewall-cmd --add-port=3307/tcp --permanent
    firewall-cmd --add-port=6380/tcp --permanent
    firewall-cmd --reload
    # 重新开启firewalld
    systemctl start firewalld
    
  • 宿主机本地先做连通性测试
    先在宿主机本地执行命令测试,排除网络链路问题:

    # 测试Docker MySQL连通性,输入密码后看是否能正常登录
    mysql -h172.16.33.5 -P3307 -uroot -p
    # 测试Docker Redis连通性
    redis-cli -h172.16.33.5 -p6380
    

    如果宿主机本地可以正常连接,外部设备无法连接,说明问题出在局域网防火墙或者宿主机防火墙配置;如果宿主机本地也无法连接,查看容器日志排查内部配置问题:

    # 查看MySQL容器运行日志
    docker logs mysql
    # 查看Redis容器运行日志
    docker logs redis
    
  • 排查Docker网桥转发规则
    如果上述步骤都无效,检查iptables的FORWARD链规则是否拦截了Docker网桥的流量:

    # 查看FORWARD链默认策略
    iptables -L FORWARD -n
    

    如果默认策略是DROP,执行以下命令放行Docker网段流量:

    iptables -A FORWARD -s 172.17.0.0/16 -j ACCEPT
    iptables -A FORWARD -d 172.17.0.0/16 -j ACCEPT
    

内容的提问来源于stack exchange,提问作者arutoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:39:00