Paw*_*tal 1 networking docker docker-swarm
我有一个环境,我需要在Docker容器中运行一些外部软件.该软件试图通过特定的IP地址连接到我们的产品 - 比方说192.168.255.2 - 这个地址是固定的,无法更改.此外,主机IP地址也必须设置为特定的IP - 比方说192.168.255.3.
产品支持2个以太网接口:
我需要同时运行多个docker容器,每个容器应连接到一个产品(1对1的关系).
在容器内运行的东西必须认为它们通过使用"第一"网络接口(具有静态IP分配且无法更改的网络接口)与产品连接.
我想要做的就是创建具有相同IP地址的容器,假装容器内的应用程序使用产品的"第一"以太网接口,然后在主机级别我想使用IPTables将所有流量重定向到"第二"接口.
因此,我有一个主要问题:如何使用相同的IP地址创建多个docker容器?
根据您的问题的确切措辞,docker可以选择共享另一个容器的网络堆栈.简单地运行:
docker run -d --name containera yourimage
docker run -d --net container:containera anotherimage
Run Code Online (Sandbox Code Playgroud)
您将看到第二个容器具有相同的IP接口,甚至可以看到第一个容器使用的端口.
我建议您在docker主机上安装两个接口并绑定到您需要的主机上的IP,然后不要担心容器的实际IP.结果将更容易管理.以下是如何绑定到主机上的单个IP,端口8080和8888映射到两个不同容器的端口80:
docker run -d -p 192.168.255.2:8080:80 --name nginx8080 nginx
docker run -d -p 192.168.255.2:8888:80 --name nginx8888 nginx
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |