问题:
为什么使用bridge模式不能使用window主机访问虚拟机IP:8089端口直接访问虚拟机容器
背景:
使用docker-compose中的bridge模式并且做了8089:8080的端口映射在虚拟机上启动Jenkins容器,容器正常启动,无防火墙,
现象:
使用curl 虚拟机IP:8089端口能正常访问,但是使用window主机访问虚拟机IP:8089端口失败
把docker-compose的模式改host在windows主机上使用虚拟机IP:端口即可访问
虚拟上启动的jenkins容器无法通过Windows主机上的浏览器直接访问
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 阿里嘎多学长 2023-04-10 08:46关注
以下内容部分参考ChatGPT模型:
问题的原因是在bridge模式下,容器的IP地址是在虚拟网络中,无法直接从Windows主机访问。需要在Windows主机上安装Docker客户端,并使用客户端连接到虚拟机中运行的Docker引擎,然后使用Docker客户端的端口映射功能将容器的端口映射到Windows主机上,这样就可以通过Windows主机访问容器了。
具体操作步骤如下:
- 在虚拟机上启动Docker引擎,并在Docker中启动Jenkins容器,使用默认的bridge网络模式,并将容器的端口映射到宿主机上:
docker run -p 8089:8080 jenkins/jenkins:lts
- 在Windows主机上安装Docker客户端,并使用Docker客户端连接到虚拟机中运行的Docker引擎:
docker -H ssh://user@192.168.0.100:2375 ps
其中,user是在虚拟机中具有Docker访问权限的用户,192.168.0.100是虚拟机的IP地址,2375是Docker引擎的API端口号。
- 在Windows主机上使用Docker客户端的端口映射功能将容器的端口映射到Windows主机上:
docker -H ssh://user@192.168.0.100:2375 run -p 8089:8080 jenkins/jenkins:lts
其中,8089是Windows主机上的端口号,8080是容器的端口号。
- 现在就可以通过Windows主机上的浏览器访问Jenkins容器了:
http://localhost:8089
如果我的建议对您有帮助、请点击采纳、祝您生活愉快
解决 无用评论 打赏 举报
悬赏问题
- ¥15 mmo能不能做客户端怪物
- ¥15 osm下载到arcgis出错
- ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
- ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
- ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
- ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
- ¥15 QQ邮箱过期怎么恢复?
- ¥15 登录他人的vue项目显示服务器错误
- ¥15 (标签-android|关键词-app)
- ¥15 comsol仿真压阻传感器