Linux 复现Docker NAT网络

Linux 复现Docker NAT网络

docker 网络的构成分为宿主机docker0网桥和为容器创建的veth 对构成。这个默认网络命名空间就是我们登陆后日常使用的命名空间
请添加图片描述
使用ifconfig命令查看到的就是默认网络命名空间,docker0就是网桥,容器会把docker0当成路由,将流量发往docker0这个虚拟网桥上,然后docker0会走本地路由表发到你路由表上下一跳地址,如果当前层已经是物理机了就是路由器,如果你用的是虚拟机则就是你虚拟机的虚拟网桥,然后就是套娃
请添加图片描述
启动一个容器,我们再来看宿主机网络设备。从下图可以看到当我们启动redis容器后,本机网络设备新增了一个虚拟以太网设备veth9733c,容器redis02 ip为172.17.0.2,这个没有在本地网络设备中显示出来(在下文会讲这个地址在哪里出现),容器redis02进程id
请添加图片描述

命名空间

然后就是耳熟能详的词了——命名空间,docker 是利用linux命名空间实现的资源隔离。而容器redis02的ip地址也是存在于命名空间,linux veth类型网络设备总是成对出现,而这里只有一个veth设备是因为另一个peer在redis02的命名空间中.进入redis02网络命名空间的方法也很简单,就是利用redis02的进程id(pid). 使用nsenter -n --target 1281进入。到这里docker 的nat网络就已经实现了,网关路由docker0, nat中的网络设备docker以bridge网络模式创建的容器
请添加图片描述

复现docker nat网络

用到的命令行工具:ip,ifconfig

  1. 创建网桥:

    ip link add dev br0 type bridge
    ifconfig br0 172.20.0.1 netmask 255.255.255.0 broadcast 172.20.255.255
    ip link set br0 up
  2. 创建网络命名空间

    初始化netns
    ip netns add one
    将系统默认命名空间绑定到ip netns以供ip 命令操作
    ln -s /proc/1/ns/net /var/run/netns/default
  3. 进入一个新的网络命名空间

    unshare -n -f /usr/bin/zsh
  4. 在新网络命名空间中创建veth设备

    创建一个veth 设备对,eth0放在当前命名空间, veth01放系统默认网络命名空间
    ip link add dev eth0 type veth peer name veth01 netns default
    将veth01连接到虚拟网桥br0,后面这个设备就会把br0当路由
    ip netns exec default ip link set veth01 master br0
    ifconfig eth0 172.20.0.2
    ip link set eth0 up
    ip netns exec default ip link set veth01 up

效果

命令空间内
请添加图片描述
命名空间外
请添加图片描述
在命名空间中使用redis-server /etc/redis/redis.conf --daemonize no跑一个redis看看效果,可以看到宿主机6379是没有被监听的,但是通过命名空间创建的虚拟以太网设备的ip地址可以进去
在这里插入图片描述

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

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

相关文章

容联云发布容犀大模型应用,重塑企业“营销服”|WAIC 2024

7月6日,在2024世界人工智能大会上,容联云成功举办主题为“数智聚合 产业向上”的生成式应用与大模型商业化实践论坛。 论坛上,容联云发布了容犀智能大模型应用升级,该系列应用包括容犀Agent Copilot、容犀Knowledge Copilot、容犀…

User parameters 用户参数与Web监控

目录 一. 自定义键介绍 二. 制作步骤 1. 添加无可变部分参数 2. 添加有可变参数 3. 使用用户参数监控php-fpm 服务的状态 三. Web页面导入应用监控 四. Web监控 主要功能和操作: 开启方式 官方预定义监控项文档https://www.zabbix.com/documentation/6…

代码随想录(day1)二分法

if语句的基本语法 if 要判断的条件: 条件成立的时候&#xff0c;要做的事举例&#xff1a; if nums[middle]<target:leftmiddle1 while语句的基本语法&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statements)举例&#xff1a; while left<right:midd…

【小鸡案例】表单focus和blur事件用法

input中有2个属性&#xff0c;一个是focus获取焦点&#xff0c;一个是blur失去焦点。获取焦点就是我们点击输入框时输入框被选中&#xff1b;失去焦点即点击输入框以外的区域&#xff0c;今天就用这两种属性做一个点击输入框的动画效果。 先写个输入框&#xff0c;代码如下&am…

基于LabVIEW的设备安装螺栓连接设计

介绍了一种基于LabVIEW的辅助设备安装螺栓连接设计案例。通过LabVIEW软件&#xff0c;实现了从螺栓规格预估、强度校核到物料选用的整个流程的软件化&#xff0c;提高了设计效率和安装可靠性。 项目背景 在轨道车辆设备安装中&#xff0c;螺栓连接作为一种常见的紧固方式&…

【java计算机毕设】线上花店销售商城系统java MySQL ssm JSP maven项目代码源码+文档ppt

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】线上花店销售商城系统MySQL ssm JSP maven项目代码源码文档PPT 小组设计代码 2项目介绍 系统功能&#xff1a; 线上花卉小铺系统包括管理员、用户俩种角色。 用户端&#xff1a;1.注册登录&#xff1a;游客…

系统化学习 H264视频编码(02) I帧 P帧 B帧 引入及相关概念解读

说明&#xff1a;我们参考黄金圈学习法&#xff08;什么是黄金圈法则?->模型 黄金圈法则&#xff0c;本文使用&#xff1a;why-what&#xff09;来学习音H264视频编码。本系列文章侧重于理解视频编码的知识体系和实践方法&#xff0c;理论方面会更多地讲清楚 音视频中概念的…

JavaWeb开发基础7个Web术语解析

7个Web术语 Website: static vs dynamic HTTP HTTP Requests GET vs POST Servlet Container Server: Web vs Application Content Type Website: static vs dynamic 网站内容包括文本、图片、音频、视频&#xff0c;通过URL来访问。网站分为静态网站和动态网站。 静态网…

HBuilder X 小白日记03-用css制作简单的交互动画

:hover选择器&#xff0c;用于选择鼠标指针浮动在上面的元素。 :hover选择器可用于所有元素&#xff0c;不只是链接 :link选择器 设置指向未被访问页面的链接的样式 :visited选择器 用于设置指向已被访问的页面的链接 :active选择器 用于活动链接

mp4视频太大怎么压缩不影响画质,mp4文件太大怎么变小且清晰度高

在数字化时代&#xff0c;我们常常面临视频文件过大的问题。尤其是mp4格式的视频&#xff0c;文件大小往往令人望而却步。那么&#xff0c;如何在不影响画质的前提下&#xff0c;有效地压缩mp4视频呢&#xff1f;本文将为您揭秘几种简单实用的压缩技巧。 在分享和存储视频时&am…

白嫖A100活动来啦,书生·浦语大模型全链路开源体系

扫码参加即可获得&#xff1a; 第一节 书生浦语大模型全链路开源体系 书生浦语大模型的开源历程。 从模型到应用的典型流程 书生浦语的开源体系&#xff0c;包含从数据、预训练、微调、部署、评测、应用等环节

C# Winform自制多轴力臂(简单易懂,方便扩展)

WinForms框架广泛应用于上位机开发领域&#xff0c;其中对力臂的精准控制是常见需求之一。本文深入探讨了如何创建自定义的多轴力臂图形控件&#xff0c;不仅涵盖了力臂图形控件的角度调节机制&#xff0c;还详细展示了如何实现力臂运动的生动动态效果&#xff0c;为开发者提供…

【web前端HTML+CSS+JS】--- JS学习笔记03

一、JS介绍 可以在前端页面上进行逻辑处理&#xff0c;来解决表单的验证等问题&#xff0c;提升效率&#xff0c;直接在前端提示问题&#xff0c;减少服务器压力 应用1&#xff1a;可以做静态验证和动态验证&#xff08;进行异步请求&#xff09; 应用2&#xff1a;可以解析后…

Java---包装类与泛型

1.包装类 1.1 包装类 在Java中&#xff0c;由于基本数据类型不是继承Object类&#xff0c;为了在泛型代码中可以支持基本数据类型&#xff0c;Java给每个基本数据类型各自提供了一个包装类。 如下图 除了char和int基本数据类型的包装类型有点特别&#xff0c;其他的都是首字…

30岁前懂3点助你成为不被吃的AI产品经理

前几天突然间想起一个程序员和产品经理之间经常会遇到的问题&#xff0c;我问程序员&#xff0c;你们怎么样怼产品经理提出的需求&#xff0c;他们回答我如下图&#xff1a; 可见日常工作中AI产品经理提需求给研发工程师时&#xff0c;貌似产生了产品经理“求”研发帮开发的现象…

linux指令练习

二、touch、vi练习&#xff1a; 1、在root家目录下创建目录A1和B1 2、进入B1下同时创建三个文件m1, m2 , n1&#xff0c;单独创建目录N1 3、进入到A1目录中分别创建一个文件t1,k2&#xff0c;同时创建目录F1&#xff0c;F2 4、删除B1下的所有1结尾的文件或者目录 5、删除A1目录…

动态粒子发射特效404网站HTML源码

源码介绍 动态粒子发射404网站HTML源码&#xff0c;粒子内容可以进行修改&#xff0c;默认是4&#xff0c;0数字还有一个页面不存在英文&#xff0c;可以自行修改&#xff0c;喜欢的朋友可以拿去使用&#xff0c;源码是html&#xff0c;记事本打开修改即可&#xff0c;鼠标双击…

【面试题】串联探针和旁挂探针有什么区别?

在网络安全领域中&#xff0c;串联探针和旁挂探针&#xff08;通常也被称为旁路探针&#xff09;是两种不同部署方式的监控设备&#xff0c;它们各自具有独特的特性和应用场景。以下是它们之间的主要区别&#xff1a; 部署方式 串联探针&#xff1a;串联探针一般通过网关或者…

设计资料:520-基于ZU15EG 适配AWR2243的雷达验证底板 高速信号处理板 AWR2243毫米波板

基于ZU15EG 适配AWR2243的雷达验证底板 一、板卡概述 本板卡系北京太速科技自主研发&#xff0c;基于MPSOC系列SOC XCZU15EG-FFVB1156架构&#xff0c;搭载两组64-bit DDR4&#xff0c;每组容量32Gb&#xff0c;最高可稳定运行在2400MT/s。另有1路10G SFP光纤接口、1路40G…

使用 Hugging Face 模型时遇到的问题

题意&#xff1a; I load a float32 Hugging Face model, cast it to float16, and save it. How can I load it as float16? 我加载了一个float32的Hugging Face模型&#xff0c;将其转换为float16&#xff0c;并保存了。我该如何以float16的形式加载它呢&#xff1f; 问题…