当前位置: 首页 > news >正文

探索Docker网络配置和管理

目录

1.docker网络类型有几种?

2.自定义网络管理

1.查看网络信息

2.查看网络的详细信息

3.创建四种网络容器

3.none类型

1.验证

 4.host类型

1.验证

5. bridge类型

1.验证

2.设备对 

6. container类型

1.验证

 2.详解

7.科普下docker的网络名称空间 



“如果您在解决类似问题时也遇到了困难,希望我的经验分享对您有所帮助。如果您有任何疑问或者想分享您的经历,欢迎在评论区留言,我们可以一起探讨解决方案。祝您在编程路上顺利前行,不断突破技术的难关,感谢您的阅读!”


1.docker网络类型有几种?

  1. none:

    • 作用: 不为容器创建网络接口,容器内部只有本地回环接口(lo)。
    • 适用场景: 对网络要求较低,容器不需要与外部或其他容器通信的场景。
    • 大白话:没有网卡,只有一个本地回环网卡lo。
  2. host:

    • 作用: 容器与宿主机共享网络命名空间,不会创建新的网络接口。
    • 优势: 最高的网络性能,容器直接使用宿主机的网络,无额外的网络地址转换。
    • 风险: 容器与宿主机的网络资源可能发生冲突,尤其是端口冲突。
    • 大白话:不会产生新的网络名称空间。直接使用宿主机的网络名称空间。效率极高。缺陷就是宿主机和监听端口和容器可能会存在冲突的风险。
  3. bridge:

    • 作用: 创建一个Linux网桥,容器连接到这个桥上,从而与宿主机的网络进行通信。
    • 适用场景: 多个容器需要与宿主机和其他容器通信时,使用桥接网络最为常见。
    • 大白话:桥接网卡,相当于VM的NAT网络,会产生一块新的网卡,会生成一对设备对,一端在容器里,另一端在宿主机上。
  4. container:

    • 作用: 与指定的已存在容器共享网络命名空间,即两个容器可以共享相同的网络配置和接口。
    • 适用场景: 需要实现一些特定的网络拓扑或者容器之间需要直接通信而不经过宿主机的场景。
    • 大白话:不会创建新的网卡,和指定的容器共享网络名称空间。
  5. custom:

    • 作用: 允许用户自定义网络配置,可以使用Docker网络插件来实现不同的网络驱动和设置。
    • 适用场景: 需要更复杂的网络拓扑或者特定网络策略的场景,比如多主机通信、跨云服务的容器通信等。
    • 大白话:自定义网络名称空间。

每种网络模式都有其适用的场景和特点,选择合适的网络模式可以根据容器的需求和安全性要求来决定。

2.自定义网络管理

1.查看网络信息

 docker network ls

2.查看网络的详细信息

docker network inspect bridge

3.创建四种网络容器

docker run -id --name 1-none  --network none  alpine
docker run -id --name 2-host --network host alpine
docker run -id --name 3-bridge --network bridge alpine
docker run -id --name 4-container --network container:3-bridge alpine

4.查看容器运行状态

docker ps -a

3.none类型

  1. none:

    • 作用: 不为容器创建网络接口,容器内部只有本地回环接口(lo)。
    • 适用场景: 对网络要求较低,容器不需要与外部或其他容器通信的场景。

1.验证

查看容器状态

docker inspect 1-none 

首先他是没有IP地址的 

 进入容器查看

docker exec -it 1-none shifconfig 

 

 4.host类型

  1. host:

    • 作用: 容器与宿主机共享网络命名空间,不会创建新的网络接口。
    • 优势: 最高的网络性能,容器直接使用宿主机的网络,无额外的网络地址转换。
    • 风险: 容器与宿主机的网络资源可能发生冲突,尤其是端口冲突。

1.验证

 docker exec -it 2-host shifconfig 

5. bridge类型

  1. bridge:

    • 作用: 创建一个Linux网桥,容器连接到这个桥上,从而与宿主机的网络进行通信。
    • 适用场景: 多个容器需要与宿主机和其他容器通信时,使用桥接网络最为常见。
    • 大白话:桥接网卡,相当于VM的NAT网络,会产生一块新的网卡,会生成一对设备对,一端在容器里,另一端在宿主机上。

1.验证

docker exec -it 3-bridge shifconfig 

桥接网卡,相当于VM的NAT网络,会产生一块新的网卡,会生成一对设备对,一端在容器里,另一端在宿主机上。

2.设备对 

宿主机产生的

容器产生的

6. container类型

  1. container:

    • 作用: 与指定的已存在容器共享网络命名空间,即两个容器可以共享相同的网络配置和接口。
    • 适用场景: 需要实现一些特定的网络拓扑或者容器之间需要直接通信而不经过宿主机的场景。
    • 大白话:不会创建新的网卡,和指定的容器共享网络名称空间。

1.验证

docker exec -it 4-container shifconfig 

 2.详解

因为他指定的是 3-的所有他们两个公用了同一个网络

7.科普下docker的网络名称空间 

这些是 /proc/$$/ns 目录下的符号链接,每个符号链接代表了不同的 Linux 命名空间类型。下面解释每个的含义以及如何使用命令来查看它们:

  1. cgroup (cgroup:[4026531835]):

    • 含义: 控制组命名空间,用于限制和控制进程组的资源使用。
    • 命令: 查看当前进程的 cgroup 命名空间:
       
      ls -l /proc/$$/ns/cgroup

  2. ipc (ipc:[4026531839]):

    • 含义: 进程间通信命名空间,管理进程间通信资源如消息队列、信号量等。
    • 命令: 查看当前进程的 ipc 命名空间:
       
      ls -l /proc/$$/ns/ipc

  3. mnt (mnt:[4026531840]):

    • 含义: 挂载点命名空间,管理文件系统挂载点。
    • 命令: 查看当前进程的挂载点命名空间:
       
      ls -l /proc/$$/ns/mnt

  4. net (net:[4026531992]):

    • 含义: 网络命名空间,用于隔离网络设备、IP 地址等网络资源。
    • 命令: 查看当前进程的网络命名空间:
       
      ls -l /proc/$$/ns/net

  5. pid (pid:[4026531836]):

    • 含义: 进程命名空间,隔离进程 ID 号码。
    • 命令: 查看当前进程的进程命名空间:
       
      ls -l /proc/$$/ns/pid

  6. pid_for_children (pid:[4026531836]):

    • 含义: 为子进程指定的进程命名空间,Linux 内核版本 5.6 之后引入。
    • 命令: 查看当前进程的进程命名空间(与 pid 相同):
       
      ls -l /proc/$$/ns/pid_for_children

  7. time (time:[4026531834]):

    • 含义: 时间命名空间,隔离 clock_gettimeclock_settime 等时间操作。
    • 命令: 查看当前进程的时间命名空间:
       
      ls -l /proc/$$/ns/time

  8. time_for_children (time:[4026531834]):

    • 含义: 为子进程指定的时间命名空间,Linux 内核版本 5.6 之后引入。
    • 命令: 查看当前进程的时间命名空间(与 time 相同):
       
      ls -l /proc/$$/ns/time_for_children

  9. user (user:[4026531837]):

    • 含义: 用户命名空间,用于隔离用户 ID 和组 ID。
    • 命令: 查看当前进程的用户命名空间:
       
      ls -l /proc/$$/ns/user

  10. uts (uts:[4026531838]):

    • 含义: UTS 命名空间,用于隔离主机名和域名。
    • 命令: 查看当前进程的 UTS 命名空间:
       
      ls -l /proc/$$/ns/uts

每个命名空间都通过 /proc/$$/ns 目录下的符号链接表示,其中 $$ 是当前 Shell 或进程的 PID。这些命名空间用于实现 Linux 的进程隔离和资源管理,允许不同进程在各自独立的环境中运行。

相关文章:

探索Docker网络配置和管理

目录 1.docker网络类型有几种? 2.自定义网络管理 1.查看网络信息 2.查看网络的详细信息 3.创建四种网络容器 3.none类型 1.验证 4.host类型 1.验证 5. bridge类型 1.验证 2.设备对 6. container类型 1.验证 2.详解 7.科普下docker的网络名称空间 “…...

【数据库】 mysql数据库管理工具 Navicat平替工具 免费开源数据库管理工具

一、数据库分享 本次分享针对mysql的数据库管理工具 全部为开源免费工具 1、beekeeper-studio 可以从github或者官方下载 1.1、官方网址 官方地址:https://www.beekeeperstudio.io/ 1.2、Github 网址 Github地址:https://github.com/beekeeper-studio…...

信息系统项目管理师(高项)—学习笔记二

第一章 以下是上一篇(信息系统项目管理师(高项)—学习笔记)的续写,因为是之前记录的,这一篇还是细致到每一个小节的内容,有些过于复杂了,后续会简化~ 1.3 现代化创新发展 党的十九…...

【Vue】 style中的scoped

一、什么是scoped,为什么要用 在vue文件中的style标签上,有一个特殊的属性:scoped。 当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,通过该属性,可以使得组件之间的样式不互相污染…...

maven项目容器化运行之2-maven中使用docker插件调用远程docker构建服务并在1Panel中运行

一.背景 公司主机管理小组的同事期望我们开发的maven项目能够在1Panel管理的docker容器部署。上一篇写了先开放1Panel中docker镜像构建能力maven项目容器化运行之1-基于1Panel软件将docker镜像构建能力分享给局域网-CSDN博客。这一篇就是演示maven工程的镜像构建、容器运行、运…...

电影购票小程序论文(设计)开题报告

一、课题的背景和意义 随着互联网技术的不断发展,人们对于购票的需求也越来越高。传统的购票方式存在着排队时间长、购票流程繁琐等问题,而网上购票则能够有效地解决这些问题。电影购票小程序是网上购票的一种新型应用,它能够让用户随时随地…...

IP风险画像 金融行业的安全盾牌

在当今数字化时代,金融行业面临着前所未有的安全挑战。随着在线交易和数字银行业务的迅猛发展,欺诈和网络攻击的威胁也在不断增加。金融机构需要高效、可靠的安全解决方案来保护客户的资产和个人信息,防止各种形式的欺诈行为。 IP风险画像是…...

探索老年综合评估实训室的功能与价值

一、引言 随着人口老龄化的加剧,老年健康问题日益受到关注。老年综合评估实训室作为专门为老年人健康服务而设立的场所,具有独特的功能和重要的价值。 二、老年综合评估实训室的功能 (一)健康评估功能 1、身体功能评估 通过专业设…...

视频剪辑软件如何选?FCPX和PR更适合新手呢

随着抖音、快手等短视频平台的迅速兴起,短视频数量急剧增加。想要发布一款简单、高质量的短视频,运用剪辑软件至关重要。目前比较流行的有Adobe家的Premiere,以及Final Cut Pro X,经常有用户在二者间,不知如何选择&…...

解决第三方模块ts声明文件编译错误问题

最近小卷在用vite脚手架学习vue组件开发,使用的语言框架是typescript。在搭建vitepress在线文档服务时,用到了vitepress-demo-preview模块来展示vue组件示例和源代码。 发现import相关依赖时,会有这样的编译错误: 也就是没找到第…...

数据结构小测试:排序算法

目录 1、请简述数据结构八大排序算法的思路。 2、常用排序算法手写 冒泡排序: 选择排序: 快速排序: 归并排序: 堆排序: 3、额外再加一个二分查找吧 1、请简述数据结构八大排序算法的思路。 冒泡排序&#xff…...

电脑远程开关机

1. 远程开机 参考:https://post.smzdm.com/p/664774/ 1.1 Wake On LAN - 局域网唤醒(需要主板支持,一般都支持) 要使用远程唤醒,有几种方式:使用类似向日葵开机棒(很贵)、公网ip&…...

# Redis 入门到精通(四)-- linux 环境安装 redis

Redis 入门到精通(四)-- linux 环境安装 redis 一、linux 环境安装 redis – 基于 Linux 安装 redis 1、基于 Center 0S7 或者 unbunt-18.04 安装 Redis 1)下载安装包wget http://download.redis.io/releases/redis-?.?.?.tar.gz 如&…...

SQL进阶技巧:如何按照固定尺寸(固定区间)对数据进行打分类标签?

目录 0 问题引入 应用案例1 应用案例2 小结 0 问题引入 在日常数据分析中,经常会遇到数据产品经理或数据分析师提出这样的需求,比如按照某一给定的区间或数据范围对数据进行分类标签,而遇到这样的问题,好多同学感觉SQL做起来有点困难或无从下手,其实面对这样的问题笔者…...

数学建模·灰色关联度

灰色关联分析 基本原理 灰色关联分析可以确定一个系统中哪些因素是主要因素,哪些是次要因素; 灰色关联分析也可以用于综合评价,但是由于数据预处理的方式不同,导致结果 有较大出入 ,故一般不采用 具体步骤 数据预处理…...

EMQX开源版安装

一、EMQX是什么 EMQX 是一款开源的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,同时保证毫秒…...

R语言进行集成学习算法:随机森林

# 10.4 集成学习及随机森林 # 导入car数据集 car <- read.table("data/car.data",sep ",") # 对变量重命名 colnames(car) <- c("buy","main","doors","capacity","lug_boot","safety"…...

虚拟机的状态更新

文章目录 虚拟机的更新一、检查虚拟机的配置1.已连接状态2. 保证镜像源挂载 二、进行更新三、其余事项 虚拟机的更新 虚拟机的更新是确保系统软件包和库的更新&#xff0c;以获得最新的修复和改进&#xff1b;如果长期没有打开单机或者集群&#xff0c;可以考虑先进行一次更新…...

基于hive数据库的泰坦尼克号幸存者数据分析

进入 ./beeline -u jdbc:hive2://node2:10000 -n root -p 查询 SHOW TABLES; 删除 DROP TABLE IF EXISTS tidanic; 上传数据 hdfs dfs -put train.csv /user/hive/warehouse/mytrain.db/tidanic 《泰坦尼克号幸存者数据分析》 1、原始数据介绍 泰坦尼克号是当时世界上…...

excel根据数据批量创建并重命名工作表

需求 根据一列数据&#xff0c;批量创建并重命名工作表 做法 1. 右键该sheet&#xff0c;选择查看代码 2. 输入VBA代码 正向创建 Sub create_sheets_by_col()Dim num% 定义为integer*num Application.WorksheetFunction.CountA(Sheet1.Range("A:A")) num是非空…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...