Docker:物理机 - VM -Docker 容器之间的连接
Docker: Connectivity between Physical Machine - VM -Docker container
我刚刚开始对 docker 进行一些实验。
在我的 Windows 主机上,我有一个包含 docker 容器的虚拟机。我想在主机和容器之间或者可能是其他 VM 和这个容器之间进行通信。
- 主机IP为192.168.2.10,子网掩码为255.255.255.0
- 虚拟机 IP 为 192.168.254.130,子网掩码为 255.255.255.0
- 容器获取 ip 172.17.0.13
我看到很少有博客谈论桥接,但我仍然不确定它以及如何做到这一点。我不太喜欢网络。
一点指导会有帮助。
谢谢
编辑:
我遵循了这个 bridge-building 但无法理解要给网桥的 ip 范围,所以,我给了 192.168.254.1/24。命令 ip addr show bridge0
显示 state UNKNOWN
.
通常的做法是在容器上发布一个端口并使用 VM 的 IP,例如:
docker run -d -p 80:80 nginx
然后在主机上的浏览器 运行 中访问 VM 的 IP,您应该会看到该网页。
我假设您在 Windows 上使用 Docker,在 Virtualbox 上使用 Linux 主机 运行。请注意,默认情况下 docker-machine
创建一个 NAT 适配器(带有端口转发)和一个仅主机适配器,有时让不同的机器与正确的 ip 通信是很棘手的。
正如 Adrian 所回答的那样,您通常 "publish" 通过端口转发端口,但如果您的容器必须通过许多端口进行通信,而您只是 运行 一个这样的容器/主机,则可能更容易通过 docker run --net host ...
启动容器,这样主机的以太网适配器在容器内直接可见(我发现 )。
我刚刚开始对 docker 进行一些实验。 在我的 Windows 主机上,我有一个包含 docker 容器的虚拟机。我想在主机和容器之间或者可能是其他 VM 和这个容器之间进行通信。
- 主机IP为192.168.2.10,子网掩码为255.255.255.0
- 虚拟机 IP 为 192.168.254.130,子网掩码为 255.255.255.0
- 容器获取 ip 172.17.0.13
我看到很少有博客谈论桥接,但我仍然不确定它以及如何做到这一点。我不太喜欢网络。
一点指导会有帮助。
谢谢
编辑:
我遵循了这个 bridge-building 但无法理解要给网桥的 ip 范围,所以,我给了 192.168.254.1/24。命令 ip addr show bridge0
显示 state UNKNOWN
.
通常的做法是在容器上发布一个端口并使用 VM 的 IP,例如:
docker run -d -p 80:80 nginx
然后在主机上的浏览器 运行 中访问 VM 的 IP,您应该会看到该网页。
我假设您在 Windows 上使用 Docker,在 Virtualbox 上使用 Linux 主机 运行。请注意,默认情况下 docker-machine
创建一个 NAT 适配器(带有端口转发)和一个仅主机适配器,有时让不同的机器与正确的 ip 通信是很棘手的。
正如 Adrian 所回答的那样,您通常 "publish" 通过端口转发端口,但如果您的容器必须通过许多端口进行通信,而您只是 运行 一个这样的容器/主机,则可能更容易通过 docker run --net host ...
启动容器,这样主机的以太网适配器在容器内直接可见(我发现