Docker:物理机器 – VM -Docker容器之间的连接
我刚刚开始对docker进行一些实验。 在我的Windows主机上,我有一个托pipeDocker容器的虚拟机。 我想在主机和容器之间进行通信,或者可能是其他虚拟机和此容器。
- 主机IP为192.168.2.10,子网掩码为255.255.255.0
- VM IP为192.168.254.130,子网掩码为255.255.255.0
- 容器获得一个IP 172.17.0.13
我已经看到很less有博客谈论桥接,但我仍然不确定如何做到这一点。 我没有很多networking的东西。
一点指导将有所帮助。
谢谢
编辑:我跟着这个桥梁build设,但不明白什么IP范围给桥,所以,我给了192.168.254.1/24。 命令ip addr show bridge0
显示state UNKNOWN
。
我假设你正在使用在Virtualbox上运行的Linux主机在Windows上使用Docker。 请注意,默认情况下, docker-machine
会创build一个NAT适配器(带有一个端口转发)和一个仅用于主机的适配器,有时,让不同的机器与正确的IP进行通信是非常棘手的。
正如Adrian所回答的那样,你通常通过端口转发来“发布”端口,但是如果你的容器必须通过多个端口进行通信,并且你只运行一个这样的容器/主机,通过docker run --net host ...
来启动容器会更容易docker run --net host ...
这种方式主机的以太网适配器是直接可见的容器内(正如我在这里发现的)。
正常的做法是在容器上发布一个端口并使用虚拟机的IP地址,例如:
docker run -d -p 80:80 nginx
然后在主机上运行的浏览器中访问虚拟机的IP地址,您应该可以看到网页。