如何创建具有相同内部IP地址的docker容器?

2023-12-28

我有一个环境,需要在 Docker 容器中运行一些外部软件。该软件尝试通过特定的 IP 地址(例如 192.168.255.2)连接到我们的产品,并且该地址是固定的且无法更改。此外,主机 IP 地址也必须设置为特定 IP - 比如说 192.168.255.3。

产品支持2个以太网接口:

  • 首先对 IP 寻址有严格的限制——我们称之为“第一”
  • Second 没有此类限制并提供类似的功能 - 对于此示例,我们假设该接口的 IP 地址设置为 10.1.1.2/24 - 我们称其为“Second”

我需要同时运行多个docker容器,每个容器应连接到一个产品(一对一关系)。

在容器内运行的事物必须认为它们正在通过使用“第一个”网络接口(具有静态 IP 分配且无法更改的接口)来连接到产品。

我想要做的就是创建具有相同 IP 地址的容器,以假装容器内的应用程序正在使用产品的“第一个”以太网接口,然后在主机级别我想使用 IPTables 将所有流量重定向到“第二个”接口。

因此我有一个主要问题:如何创建多个具有相同IP地址的docker容器?


从您问题的确切措辞来看,docker 可以选择共享另一个容器的网络堆栈。只需运行:

docker run -d --name containera yourimage
docker run -d --net container:containera anotherimage

您将看到第二个容器具有相同的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建具有相同内部IP地址的docker容器? 的相关文章

随机推荐

  • 为什么 Context.User.Identity.Name 在 Windows 窗体中心上下文中为 null?

    我需要通过User Identity Name到 Windows 窗体客户端 Method public override Task OnConnected string userName Context User Identity Nam
  • 谷歌地图。如何根据中心点的坐标创建 LatLngBounds 矩形(正方形)

    我有一个点 X Y 我想创建一个正方形 Google 地图 LatLngBounds 对象可以使地理编码请求仅偏向此 LatLng Bound 区域 如何创建这样一个以给定点为中心的 LatLngBounds 正方形 我必须找到NE和SW点
  • AWS Cloudformation:负载均衡器自定义 SSL 协商策略

    尝试使用自定义 SSL 协商策略设置 cloudformation 模板 我收到的 cloudformation 错误是 CREATE FAILED AWS ElasticLoadBalancing LoadBalancer Backend
  • 我可以在函数头中包含 cppcheck 抑制吗?

    我添加了一个内联注释来抑制函数的 cppcheckusedFunction 警告 但我想将其包含在函数头中 以便 Doxygen 可以记录所有未使用的函数 我正在实现一个 API 所以我有很多函数不会在我的源代码中使用 我不想抑制所有未使用
  • Kafka Spark directStream无法获取数据

    我正在使用 Spark directStream api 从 Kafka 读取数据 我的代码如下 val sparkConf new SparkConf setAppName testdirectStreaming val sc new S
  • re.findall 返回命名捕获组的字典?

    受到一个现已删除的问题的启发 给定一个带有命名组的正则表达式 是否有类似的方法findall它返回一个列表dict使用命名的捕获组而不是列表tuple Given gt gt gt import re gt gt gt text bob s
  • Python json.loads() 返回列表而不是字典

    我通过 requests get 获取的 API 中有以下 json 现在我想用 json loads 将这个 json 转换为字典 但结果是一个列表 从https www w3schools com python python json
  • 在对话框中按下音量调高时隐藏 UI

    有没有办法在按下volume up volume down键时隐藏音量ui 据我所知 当显示对话框时触发时似乎不起作用时 可以通过活动来完成此操作 有解决办法吗 这应该与 Dialog 类一起使用 AudioManager man Audi
  • Dataproc:Jupyter pyspark 笔记本无法导入 graphframes 包

    在 Dataproc Spark 集群中 graphframe 包在 Spark Shell 中可用 但在 Jupyter pyspark Notebook 中不可用 Pyspark 内核配置 PACKAGES ARG packages g
  • 库不可写

    我在 Ubuntu 计算机上的 R 版本 3 0 2 2013 09 25 中安装软件包时遇到此问题 install packages randomForest Installing package into usr local lib R
  • 气流安装损坏。 `表 dag_stats 已经存在`

    我的 Airflow 安装已停止工作 UI Web 服务器未出现 我认为该问题与我运行时出现的以下错误有关 gt airflow initdb sqlalchemy exc OperationalError sqlite3 Operatio
  • Swift App首次运行检测

    快速地 我如何检测这是否是应用程序第一次运行 我想创建一个简单的游戏 如果应用程序是新的 则将高分设置为 0 如果我输入以下内容 override func viewDidLoad super viewDidLoad Do any addi
  • NTLM 身份验证失败,服务器最终响应“401”,但不是“200 OK”

    我正在使用 Node js 通过 NTLM 身份验证连接到服务器 NTLM协议步骤如下 参考 http www innovation ch personal ronald ntlm html http www innovation ch p
  • 使用 python 将纯 JSON 发送到 gRPC 服务器

    我可以使用 grpcurl 向我们启用 gRPC 启用反射的服务器之一发送请求 语法如下 grpcurl plaintext d test input Test 1 2 3 config max results 3 localhost 65
  • Java preg_match 数组

    有绳子strng 如何获得类似数组 arr 0 text1 arr 1 text2 我尝试使用这个 但结果有 而不是数组text1
  • Node.js 续集嵌入 hasMany IDs

    我正在尝试使用 ember data 的 Ember 应用程序和使用 Sequelize js 提供来自 MySQL 的数据的 Node js 后端 我的问题 如果我有一个通过 hasMany 与 Post 模型关联的 Comment 模型
  • 选择打印机并静默打印

    这个答案 https stackoverflow com a 9320649 1804599展示如何在 Google Chrome 中启用静默打印 但是 我有两个网页 必须使用两台不同的打印机进行静默打印 而无需进一步的用户交互 有没有办法
  • 蝗虫请求统计

    我正在考虑使用 Locust 进行一些性能测试 我对 Python 更熟悉 发现 Locust 比 JMeter JMX 更容易阅读 我习惯使用 JMeter 做的一件事是从多次运行中生成我自己的平均值 90 95 和 99 报告 为此 我
  • 通过 BlazeDS 从 Java 到 Flex 的自定义编组

    我的团队正在使用 BlazeDS 将概念验证 Flex 应用程序放在基于 Spring 的服务器之上 我们进行了大量的日期计算 因此我们在整个代码和域模型中广泛使用 Joda Time 我们现在正在尝试弄清楚如何继续在 DTO 中使用 Jo
  • 如何创建具有相同内部IP地址的docker容器?

    我有一个环境 需要在 Docker 容器中运行一些外部软件 该软件尝试通过特定的 IP 地址 例如 192 168 255 2 连接到我们的产品 并且该地址是固定的且无法更改 此外 主机 IP 地址也必须设置为特定 IP 比如说 192 1