文章详情页
如何解决docker宿主机无法访问容器中的服务?
浏览:1029日期:2024-10-17 09:16:14
问题描述
1、在容器中访问容器中的服务有响应,在宿主机访问容器服务无响应,但是宿主机可以访问到容器nginx服务的欢迎界面,截图如下:
在容器中访问容器中的服务有响应:
curl 172.17.0.2:8080

在宿主机访问容器中的服务无响应:
curl 172.17.0.2:8080
不加端口直接访问,会得到nginx服务的欢迎界面代码:
curl 172.17.0.2

2、由于容器里可以访问该服务,所以服务是启动了的;在宿主机可以访问容器中的nginx欢迎界面,说明宿主机可以访问容器中80端口的服务,问题到底出在什么地方呢?
问题解答
回答1:每个镜像都定义了可对外提供的接口,Nginx镜像只默认提供了80和443端口,你自然无法访问到容器内的8080端口。
只需要在docker create或者docker run创建容器时携带--expose参数,就能把指定的端口开放出来。
--expose Expose a port or a range of ports
回答2:你需要将制定的端口暴露到宿主机上docker run -p 8080:80 你的镜像名称
相关文章:
1. angular.js - Angularjs中点击事件传递参数 给class更换样式。2. html5 - 手机连接电脑在谷歌上调试app,出现如下的情况3. 下一个页面的三角在上面一个页面会出现,在缩放的时候会遮住文字。4. android - mac平台运行快捷键咋按5. weex - Android 原生Vue.js 使用 justify-content: flex-end; 不起作用6. javascript - swiper.js嵌套了swiper 初始设置不能向下一个滑动 结束后重新初始7. 为什么span的color非要内联样式才起作用?8. mysql 能不能创建一个 有列级函数 的联合视图?9. javascript - vue-cli热更新的问题【webpack配置】10. python - Django ManyToManyField 字段数据在 admin后台 显示不正确,这是怎么回事?
排行榜

网公网安备