Docker绑定端口后仍无法远程直接访问的解决方法

 更新时间:2024年09月11日 11:50:17   作者:热心市民梁先生  
在Docker中,如果容器的端口绑定错误或只绑定到了容器的内部IP地址,将导致外部主机无法访问该端口,所以本文小编给大家介绍了Docker绑定端口后仍无法远程直接访问的解决方法,需要的朋友可以参考下

在docker中拉取镜像后启动,启动脚本如下

启动docker

docker run --name nacos-server \
-p 8848:8848 \
-p 7848:7848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \
-d nacos/nacos-server:v2.4.2

其他主机正常访问到控制台

在这里插入图片描述

启动zipkin

docker run -d --name zipkin d7cf93f08bd4 \
    -e STORAGE_TYPE=mysql \
    -e MYSQL_DB=zipkin \
    -e MYSQL_USER=root \
    -e MYSQL_PASS=yoostar403 \
    -e MYSQL_HOST=mysql \
    -e MYSQL_TCP_PORT=3306 \
    -e KAFKA_BOOTSTRAP_SERVERS=kafka:9092 \
    -e STORAGE_TYPE=elasticsearch \
    -e ES_HOSTS=http://elasticsearch:9200 \
    -p 9411:9411 \

但是同上面nacos的访问,到9411却无法访问拒绝连接。同时看到镜像的进程如下

在这里插入图片描述

应该是一个默认绑定了0.0.0.0允许所有通过宿主机ip访问该端口,zipkin则没有。为此我问了GPT,得到如下回答:

根据您提供的信息,问题可能出在 Zipkin 容器的端口绑定配置上。您可以尝试以下步骤来配置 Zipkin 容器,使其支持其他主机访问:

检查 Zipkin 容器的端口绑定

  • 运行 docker ps 命令查看 Zipkin 容器的端口绑定情况。确保 Zipkin 容器的端口绑定正确,包括将端口绑定到主机的 IP 地址上。
  • 如果 Zipkin 容器的端口绑定只是绑定到容器自身的 IP 地址(比如 127.0.0.1),那么其他主机无法直接访问该端口。

修改 Zipkin 容器的端口绑定

  • 如果 Zipkin 容器的端口绑定只包含容器的内部 IP 地址,您需要修改端口绑定配置,将端口绑定到主机的 IP 地址上,以便其他主机可以访问。
  • 您可以通过修改 Docker 容器启动命令中的 -p 选项来实现端口绑定。例如,将端口 9410 绑定到主机的所有 IP 地址可以这样做:-p 9410:9410

重新启动 Zipkin 容器

  • 修改端口绑定配置后,您需要重新启动 Zipkin 容器,使新的配置生效。可以使用 docker restart <container_name> 命令来重新启动容器。

检查防火墙设置

  • 确保主机上的防火墙允许流量通过 Zipkin 容器使用的端口。如果有防火墙规则限制了流量,您需要相应地调整防火墙设置。

通过以上步骤,您应该能够配置 Zipkin 容器,使其支持其他主机访问。如果问题仍然存在,请提供更多详细信息,以便更好地帮助您解决问题。

看上面最有可能的应该就是第一点了,为此停止运行中的容器并删除,重新启动,在后面多加了指定0.0.0.0绑定端口映射。

docker run -d --name zipkin \
    -e STORAGE_TYPE=mysql \
    -e MYSQL_DB=zipkin \
    -e MYSQL_USER=root \
    -e MYSQL_PASS=yoostar403 \
    -e MYSQL_HOST=mysql \
    -e MYSQL_TCP_PORT=3306 \
    -e KAFKA_BOOTSTRAP_SERVERS=kafka:9092 \
    -e STORAGE_TYPE=elasticsearch \
    -e ES_HOSTS=http://elasticsearch:9200 \
    -p 0.0.0.0:9411:9411 \
    d7cf93f08bd4

就是上面的 -p 0.0.0.0:9411:9411 \ 至此可以正常访问,至于为什么nacos不需要指定,不应该都会默认指定的吗。

以上就是Docker绑定端口后仍无法远程直接访问的解决方法的详细内容,更多关于Docker无法远程直接访问的资料请关注脚本之家其它相关文章!

相关文章

  • Docker部署Golang服务的实现步骤

    Docker部署Golang服务的实现步骤

    不管是开发还是生产环境,通过docker方式部署服务都是一种不错的选择,本文主要介绍了Docker部署Golang服务的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Docker搭建Skywalking的实现示例

    Docker搭建Skywalking的实现示例

    本文主要介绍了Docker搭建Skywalking的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • 使用docker-compose,如何调整JVM参数

    使用docker-compose,如何调整JVM参数

    这篇文章主要介绍了使用docker-compose,如何调整JVM参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker服务关停的实现步骤

    docker服务关停的实现步骤

    在我看来所谓的优雅关闭,就是在系统关闭时,预留一些时间,让你有机会来善后一些事情,本文就来介绍一下docker服务如何正确关停,感兴趣的可以了解一下
    2023-10-10
  • Docker使用java项目工程的部署

    Docker使用java项目工程的部署

    随着容器化技术的广泛应用,Docker成为了一种非常流行的容器化解决方案,本文主要介绍了Docker使用java项目工程的部署,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 在Mac OS X安装Docker教程

    在Mac OS X安装Docker教程

    本篇文章主要介绍了在OS X安装Docker教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 浅谈Docker Desktop for Linux和Docker Engine区别

    浅谈Docker Desktop for Linux和Docker Engine

    本文主要介绍了Docker Desktop for Linux和Docker Engine区别,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 在Docker中部署Confluence和jira-software的方法步骤

    在Docker中部署Confluence和jira-software的方法步骤

    这篇文章主要介绍了在Docker中部署Confluence和jira-software的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • 如何自己搭建DockerHub实现过程解析

    如何自己搭建DockerHub实现过程解析

    这篇文章主要介绍了如何自己搭建DockerHub实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Docker构建简单的个人主页网站实战教程

    Docker构建简单的个人主页网站实战教程

    Docker是一种开源容器化技术,可以打包、发布和运行应用程序,本教程介绍了如何使用Docker构建一个简单的个人主页网站,通过编写Dockerfile来自定义镜像,并展示了如何通过传入环境变量来动态更改网页内容,项目使用的技术包括Docker、Alpine、Nginx、HTML、CSS和JavaScript
    2024-10-10

最新评论