如何将外部IP添加到码头集装箱?

问题描述:

因此,自从我一直在研究码头和一切可用的选项以来。我有一个带有3个额外静态IP的VPS。如何将外部IP添加到码头集装箱?

这个想法是将每个容器连接到不同的IP或者可能添加3个网络与不同的容器,并让每个网络连接到不同的IP。我前几天在互联网上看到一些教程,但我没有保存它们,我找不到它们了。

IP是静态的,由我们的ISP(ovh)提供。

到目前为止,我试图连接到使用子网IP XX.XX.XX.XX/32(只有1个IP),但它给了我错误 谢谢

PS。我是新手,在泊坞窗

- 编辑 -

just tried this code 
docker network create \ 
    --driver=bridge \ 
    --subnet=AAA.BBB.CCC.DDD/32 \ 
    --ip-range=AAA.BBB.CCC.DDD/32 \ 
    --gateway=AAA.BBB.CCC.DDD \ 
    br0 

和我得到的电流误差

Error response from daemon: failed to allocate gateway (AAA.BBB.CCC.DDD): No available addresses on this pool 

而且AAA.BBB.CCC.DDD代表的公网IP来自ISP

+0

我相信你需要将这些IP地址分配给主机,然后用IPtables转发端口。 虽然我不完全确定如何将IP地址绑定到容器, –

+0

https://docs.docker.com/engine/userguide/networking/work-with-networks/#create-networks – Rao

+0

@rao但是这个选项olis与一个swarm主机(多个服务器)一起使用,在这种情况下,我kust想要将容器或网络连接到由我的ISP提供的外部IP –

一个IP地址解析到某个地方(如果你的DNS服务器能够解决它) 在这种情况下,我假设静态IP的解析到山姆Ë机:尝试通过运行

Host xxx.xxx.xxx 

照会确认:使用IPv4地址,所以省略斜线 如果返回相同的主机名,我的假设是正确的。

在这个主机上,每个容器必须公开一个端口,并且它们不能使用同一个端口。 (每个应用程序一个端口)

所以你要么导航到一个IP后跟一个冒号和一个端口号......或者你可以省略端口,并有一个像Apache或Nginx的Web服务器在默认端口(80),并根据收到的请求配置路由。 (然后你将它路由到单独暴露的端口,但这种方式客户端不必知道这些)

希望这会给你一些指针来调查你的目标的选项。

+0

谢谢你的建议,我明天早上在工作时会看一下,我会报告一个反馈 –

+0

你可以看看我的主要话题吗?我做了一个编辑 –

+0

我没有Docker网络的经验。但是,据我所知,它们对创建本地网络很有用。在这种情况下,你需要一些不同的东西:将每个IP地址连接到另一个码头集装箱。 尝试运行我提到的主机命令并报告结果。 您应该期望得到类似如下的结果: 'XXX.XXX.XX.XX.in-addr。域名指针' 如果主机名对于每个IP地址都是相同的,那么这意味着它们已经被配置为映射到相同的机器。在这种情况下:安装nginx或apache。否则我帮不了你 –