virtualbox创建的虚拟机中部署docker容器网络问题

问题:

在windows机器上安装virtualbox后,创建虚拟linux服务器,之后在linux上部署docker容器,使用docker默认的网络模式部署,发目前虚拟机里面可以访问到部署的应用,但是在windows上使用浏览器访问ip和端口却无法访问的问题。

解决1:

virtualbox创建的虚拟机中部署docker容器网络问题

如果所示,windows的浏览器访问nginx容器,需要一层一层的映射,最后访问到nginx服务。这里一共有三层映射关系:

1.windows ip端口映射到 virtualbox

2.virtualbox ip端口映射到 docker

3.docker ip端口映射到 nginx容器实例服务

此时,windows ip端口映射到 virtualbox 是需要配置的,virtualbox ip端口映射到 docker 是docker启动自己设置的映射,通过docker run -d -p 80:80 –name=nginx nginx 命令启动时映射的,docker ip端口映射到 nginx容器实例服务是在docker容器启动时走默认的桥接网络模式自动映射的。所以问题就出目前windows ip端口映射到 virtualbox 是需要配置的这块。
查看virtualbox虚拟机的网络设置部分:

virtualbox创建的虚拟机中部署docker容器网络问题

这块只是做了windows的2022端口映射成virtualbox的22端口。所以可以远程使用xshell这样的工具登录上对应的虚拟机上。

virtualbox创建的虚拟机中部署docker容器网络问题

按照上图再加一个端口映射,将windows的8888端口映射到virtualbox的80端口,即可,效果如下

virtualbox创建的虚拟机中部署docker容器网络问题

virtualbox创建的虚拟机中部署docker容器网络问题

virtualbox创建的虚拟机中部署docker容器网络问题

访问 链路 :192.168.56.1:8888 =》172.17.0.1:80(docker0) =》容器的虚拟IP:80端口

解决2:

除了以上的方式逐一添加对外暴露端口的方式还有一劳永逸的方式。
创建网卡一,按照图中配置 – 默认nat 模式网卡

virtualbox创建的虚拟机中部署docker容器网络问题

创建网卡二,按照图中配置 – onlyhost 模式网卡

virtualbox创建的虚拟机中部署docker容器网络问题

这种方式是一劳永逸,直接让虚拟机系统的端口与宿主机端口全部形成一一映射。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容