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

Docker容器中指定端口无法在浏览器访问Adminer的问题排查

问题描述

我通过以下命令创建Adminer Docker容器:

sudo docker run -it -d --name admine -p 7000:7000 --network techBankNet -e ADMINER_DEFAULT_SERVER=mysql_container --restart always adminer:latest

执行sudo docker ps后显示容器正常运行:

CONTAINER ID   IMAGE               COMMAND                  CREATED        STATUS                         PORTS                                                                     NAMES
d170a4d96c10   adminer:latest      "entrypoint.sh php -…"   8 hours ago    Up 47 minutes                  0.0.0.0:7000->7000/tcp, :::7000->7000/tcp, 8080/tcp                       admine
6f980494ad04   mysql:latest        "docker-entrypoint.s…"   9 hours ago    Up 47 minutes                  3306/tcp, 33060/tcp, 0.0.0.0:3307->3307/tcp, :::3307->3307/tcp            mysql-container

同时MySQL容器可通过sudo docker exec -it mysql-container mysql -p正常访问:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

我已将容器7000端口映射到主机7000端口,但访问localhost:7000时浏览器显示“页面加载失败”,执行curl -i my_ip_address:7000返回错误:

curl: (7) Failed to connect to my_ip_address port 7000 after 3069 ms: No route to host 

请问该问题的可能原因是什么?


可能的原因及排查方案
  • Adminer容器端口映射不匹配
    Adminer官方镜像默认监听8080端口,而你启动命令中把主机7000端口映射到了容器的7000端口——容器内部7000端口并没有服务运行。从docker ps输出也能看到,容器本身暴露了8080/tcp端口,这才是正确的内部端口。
    解决:修改启动命令的端口映射为-p 7000:8080,重启容器后再访问localhost:7000。

  • 主机防火墙或安全组拦截端口
    No route to host错误通常和网络拦截有关,主机的防火墙(如ufw、firewalld)或云服务器安全组可能未开放7000端口的入站流量。
    排查:

    • Linux主机用ufw的话,执行sudo ufw allow 7000/tcp;用firewalld则执行sudo firewall-cmd --add-port=7000/tcp --permanent && sudo firewall-cmd --reload;
    • 云服务器需检查安全组规则,确保入方向允许7000端口的TCP连接。
  • 自定义网络配置异常
    容器加入的techBankNet网络可能存在配置问题,导致容器与主机的通信受阻。
    排查:

    • 临时移除--network techBankNet参数,用默认bridge网络重启Adminer容器,测试是否能正常访问;
    • 执行docker network inspect techBankNet查看网络的子网、网关配置,确认容器已正确加入该网络。
  • Docker网络服务异常
    Docker的网络组件(如docker0网桥)可能出现故障,导致端口映射的流量无法正常转发。
    排查:

    • 重启Docker服务:sudo systemctl restart docker,然后重新启动所有相关容器;
    • 执行ip addr检查主机IP地址是否正确,确保my_ip_address是主机的有效公网或内网IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:55:23