如何解决docker宿主机无法访问容器中的服务?

 Xx--尐尐尐尐情绪 发布于 2022-10-29 01:21

1、在容器中访问容器中的服务有响应,在宿主机访问容器服务无响应,但是宿主机可以访问到容器nginx服务的欢迎界面,截图如下:

在容器中访问容器中的服务有响应:

curl 172.17.0.2:8080

在宿主机访问容器中的服务无响应:

curl 172.17.0.2:8080


不加端口直接访问,会得到nginx服务的欢迎界面代码:

curl 172.17.0.2

2、由于容器里可以访问该服务,所以服务是启动了的;在宿主机可以访问容器中的nginx欢迎界面,说明宿主机可以访问容器中80端口的服务,问题到底出在什么地方呢?

2 个回答
  • 你需要将制定的端口暴露到宿主机上
    docker run -p 8080:80 你的镜像名称

    2022-10-30 10:11 回答
  • 每个镜像都定义了可对外提供的接口,Nginx镜像只默认提供了80和443端口,你自然无法访问到容器内的8080端口。

    只需要在docker create或者docker run创建容器时携带--expose参数,就能把指定的端口开放出来。

    --expose Expose a port or a range of ports

    2022-10-30 10:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有