0

我尝试从具有静态 IP 的多个 VM 迁移到基于容器的解决方案。

现在我正在使用带有静态 IP 的 VM:

在此处输入图像描述

我可以 ping 和 telnet 我的虚拟telnet 10.48.0.10 5432telnet 10.48.0.11 5432

我想创建一个允许我做同样事情的 docker 主机:

在此处输入图像描述

如果我可以telnet 172.17.0.2 5432,那就太好了telnet 172.17.0.3 5432

我尝试通过 docker 来完成,因为我想管理配置。

这样做的正确方法是什么?我应该在容器内使用 TCP 代理来管理它吗?

4

2 回答 2

1

解决方案非常简单。

创建一个网络并将其绑定到主机

docker network create --subnet=10.0.0.0/24 -o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" mynet

mynet然后在网络上运行一个容器

docker run -ti --net=mynet --ip=10.0.0.30 busybox

现在,如果您为此子网添加到 docker 主机 (192.168.2.156) 的路由,则从另一台计算机:

sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.2.156

您可以 ping 您的容器 ( ping 10.0.0.30)

于 2016-07-28T10:29:50.233 回答
0

如果您想从您的主机或任何其他可以获取您的主机的服务器访问容器,您需要将每个容器映射到主机服务器中的不同端口。

docker run -d -p 54321:5432 my_app
docker run -d -p 54322:5432 my_app

所以你可以telnet 10.200.0.1 54321并且telnet 10.200.0.1 54322

于 2016-07-25T23:33:18.033 回答