docker 多网卡指定网卡出网

news2024/11/24 18:43:12

前言

宿主机中有多个网卡
ens160 192.168.4.23/20 内网通信用
ens192 10.31.116.128/24 出公网访问-1
ens193 10.31.116.128/24 出公网访问-2

现在需要不同容器中不同出网访问,举例
容器1 192.168.0.1/20 网段走宿主机 ens160网卡,否则全部走ens192 网卡
容器2 192.168.0.1/20 网段走宿主机 ens160网卡,否则全部走ens193 网卡

思路

主要能想到2个办法

  • 硬件: 让ens192、ens193 连接的路由器也连接到192.168.0.1/20 这个网段中,然后设置路由策略,192.168.0.1/20 的请求路由转发,这种方式更高效,但是不知道为啥我ros 一直不成功
  • 软件:centos 自带的iptables 做nat 转换,大哥的帖子给的思路

这里介绍的是软件方法

简单说就是创建一个新的docker net,把不同的容器设置不同的ip,利用iptables 的规则将不同ip走不同的网卡,
比如说
容器1 设置的ip 是 10.10.11.2 ,iptables 如下设置

iptables -t nat -I POSTROUTING -p all -s 10.10.11.2 -j SNAT --to-source 10.31.116.128(指定网卡的地址)

容器1 设置的ip 是 10.10.11.3 ,iptables 如下设置

iptables -t nat -I POSTROUTING -p all -s 10.10.11.3 -j SNAT --to-source 10.32.116.128(指定网卡的地址)

这就解决了出公网,内网差不多

iptables -t nat -I POSTROUTING -p all -d 192.168.0.1/20 -j SNAT --to-source 192.168.4.23(内网网卡地址)

实现

实验环境无三张网卡,我就使用虚拟网卡

ifconfig ens192:1000 10.32.116.128/24

在这里插入图片描述
可以看到两个网卡出网ip 不同的
在这里插入图片描述

docker 新建net

docker network create --subnet 10.10.11.0/24 --gateway 10.10.11.1 hostw

net 映射

iptables -t nat -I POSTROUTING -p all -s 10.10.11.2 -j SNAT --to-source 10.31.116.128
iptables -t nat -I POSTROUTING -p all -s 10.10.11.3 -j SNAT --to-source 10.32.116.128
# 内网访问
iptables -t nat -I POSTROUTING -p all -d 192.168.0.1/20 -j SNAT --to-source 192.168.4.23

启动容器

docker run -d -it --network=hostw --ip=10.10.11.2 --name ce1   centos /bin/bash -c "tail -f /dev/null"
docker run -d -it --network=hostw --ip=10.10.11.3 --name ce2   centos /bin/bash -c "tail -f /dev/null"

最终验证实现效果
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从@Param注解开始,深入了解 MyBatis 参数映射的原理

系列文章目录 MyBatis缓存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难,MyBatis动态Sql标签解析 Mybatis的CachingExecutor与二级缓存 使用MybatisPlus还是MyBaits ,开发者应该如何选择? 巧…

Socket编程详解:FrmTCPServer与FrmTCPClient的双向对话

目录 预备知识 视频教程 项目前准备知识点 1、服务器端程序的编写步骤 2、客户端程序编写步骤 代码部分 1、服务端FrmServer.cs文件 2、客户端FrmClient.cs文件 3、启动文件Program.cs 结果展示 预备知识 请查阅博客http://t.csdnimg.cn/jE4Tp 视频教程 链接&#…

面经总结系列(六): 奇安信技术研究院算法工程师

👨‍💻作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。✨公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等&#xf…

健身馆预约小程序定制搭建会员管理系统次卡核销充值年卡saas账号

健身馆预约小程序定制搭建:打造高效会员管理系统 🏋️ 一、引言:为何需要健身馆预约小程序? 随着健康意识的提高,越来越多的人选择到健身馆进行锻炼。然而,传统的健身馆预约方式往往存在诸多不便&#xff…

(上位机APP开发)调用华为云命令API接口给设备下发命令

一、功能说明 通过调用华为云IOT提供的命令下发API接口,实现下面界面上相同的功能。调用API接口给设备下发命令。 二、JavaScript代码 function sendUnlockCommand() {var requestUrl = "https://9bcf4cfd30.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/60…

reactjs18 中使用路由技巧

react18 版本中,路由的用法发生了变化,react18 版本中,路由由 react-router-dom 包提供。与 react-router 包不同的是,react-router-dom 包提供了 createBrowserRouter 方法,该方法可以创建路由对象。总之,…

汽车尾灯(转向灯)电路设计

即当汽车进行转弯时,司机打开转向灯,尾灯会根据转向依次被点亮,经过一定的间隔后,再全部被消灭。不停地重复,直到司机关闭转向灯。 该效果可由以下电路实现: 完整电路图: 02—电路设计要点 延时电路的要点主要有两个: 一、当转向开关被按下时,LED需要逐个亮起; 二、LED被逐…

商业智能(BI)实战项目

商业智能(BI)实战项目 期待您的关注 ☀大数据学习笔记 1.实现的功能 2.数据库操作步骤 创建数据库:create database card;创建表:create table card_apply ( cid bigint primary key auto_increment ,apply_uid bigint ,apply_ent…

我的北航MEM成长之旅

领完毕业证,2年的学业生涯到此结束。为了方便大家理解后续的内容,这里我们先解释下基本信息,比如MEM到底是个啥?以及北航的MEM都学什么? 1 MEM解读 1.1 MEM是什么? MEM是"Master of Engineering Ma…

[数据集][目标检测]城市街道井盖破损未盖丢失检测数据集VOC+YOLO格式4404张5类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4404 标注数量(xml文件个数):4404 标注数量(txt文件个数):4404 标注…

CentOS 7.9 CDH6.3.2集群生产环境实战部署指南

一、环境准备 1、系统环境: # cat /etc/os-release 2、准备工作: 部署资源分配 节点centos 7.9(生产)节点规划Postgresql部署组件备注pgsql32c、128G、2TB国产数据库Postgresql(翰高)可根据实际情况调整…

通达信趋势动能资金加速异动幅图指标公式源码

通达信趋势动能资金加速异动幅图指标公式源码: B:SUM(AMOUNT*CLOSE,1)/SUM(AMOUNT,1); B1:EMA(B,5); TDX5:(B-B1)*100/B,NODRAW,COLORRED; TDX6:TDX5!DRAWNULL; TDX7:(CLOSE-LLV(LOW,13))/(HHV(HIGH,13)-LLV(LOW,13))*100; TDX8:SMA(TDX7,4,1); TDX9:SMA(TDX8,3,1)…

Git Flow 工作流学习要点

Git Flow 工作流学习要点 Git Flow — 流程图Git Flow — 操作指令优点:缺点:Git Flow 分支类型Git Flow 工作流程简述关于 feature 分支关于 Release 分支关于 hotfix 分支 总结 Git Flow — 流程图 图片来源:https://nvie.com/posts/a-succ…

电子名片小程序源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 电子名片小程序源码系统是一款基于前后端分离架构的综合性平台,旨在为用户提供一个集销售名片和企业商城于一体的解决方案。该系统采用先进的技术手段,实现了个性化名片设计、便捷的销售功能、企业商城模块等一系列实用功能。同时,…

惠普笔记本双指触摸不滚屏

查看笔记本型号 一般在笔记本背面很小的字那里 进入惠普官网 笔记本、台式机、打印机、墨盒与硒鼓 | 中国惠普 (hp.com) 选择“支持”>“解决问题”>“软件与驱动程序” 选择笔记本 输入型号,选择操作系统 下载驱动进行完整 重启之后进行测试

HBase与Hive数据交互

一、hbase数据导入hive hive通过建立外部表和普通表加载hbase表数据到hive表中。 两种方式加载hbase中的表到hive中,一是hive创建外部表关联hbase表数据,是hive创建普通表将hbase的数据加载到本地。 1.创建外部表 hbase中创建test表,且插入…

stylelint 配置

1.vscode 安装插件Stylelint 2.项目安装插件 pnpm i stylelint stylelint-config-standard stylelint-config-recommended-scss stylelint-config-recommended-vue postcss postcss-html postcss-scss stylelint-config-recess-order stylelint-config-html -D 依赖 说明 备…

python笔记----少儿编程课程

第1课: 认识新朋友-python 知识点: 1、在英文状态下编写Python语句。 2、内置函数print()将结果输出到标准的控制台上,它的基本语法格式如下: print("即将输出的内容") #输出的内容要用引号引起来,可…

一加Ace3 刷机救砖简化说明

注意:工具使用英文目录,支持救砖和降级。PJE110国行版,CPH2609国际版。目前国行版不能完美转换国际版,每次升级都需要刷oplusstanvbk,不建议使用。跨国转换或ROOT一定先解锁Bootloader,可以使用“一加全能工…

重温react-10(函数组件和类组件的ref获取方式)

App.js的代码 06是函数组件 07是类组件 import React, { useEffect, useRef } from react; import LearnFunction06 from ./LearnFunction06; // 函数组件和类组件的ref使用方式 import LearnFunction07 from ./LearnFunction07; // 函数组件和类组件的ref使用方式 export de…