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

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

作者: 生不悔改 | 来源:发表于2023-07-16 18:28 被阅读0次

    问题:

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

    解决1:

    image.png

    如果所示,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虚拟机的网络设置部分:

    image.png

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


    image.png

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


    image.png
    image.png
    image.png

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

    解决2:

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


    image.png

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


    image.png

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/gydwudtx.html