探索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 sh

ifconfig 

 

 4.host类型

  1. host:

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

1.验证

 docker exec -it 2-host sh

ifconfig 

5. bridge类型

  1. bridge:

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

1.验证

docker exec -it 3-bridge sh

ifconfig 

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

2.设备对 

宿主机产生的

容器产生的

6. container类型

  1. container:

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

1.验证

docker exec -it 4-container sh

ifconfig 

 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 的进程隔离和资源管理,允许不同进程在各自独立的环境中运行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pixi.js技术探索:开发者必备的视觉开发工具

pixi.js是一个开源的轻量级2D渲染引擎,专注于利用WebGL和HTML5中的Canvas技术来实现高性能的交互式图形和动画。它旨在提供一个简单而强大的工具集,使开发者能够轻松地创建各种类型的视觉效果,包括游戏、数据可视化、广告和其他富媒体应用程序…

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA)

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA) CMD常见命令配置环境变量JDK的下载和安装变量变量的声明和初始化声明变量初始化变量 变量的类型变量的作用域变量命名规则示例代码 键盘键入使用 Scanner 类读取输入步骤示例代码 常用方法处…

【服务器】端口映射

文章目录 1.端口映射的概念1.1 端口映射的类型1.2 端口映射的应用场景1.3 示例 2.为什么要进行端口映射呢?3.原理3.1【大白话】原理解释3.2 原理图 4.代码 1.端口映射的概念 端口映射(Port Mapping),也称为端口转发(P…

第二届大数据、计算智能与应用国际会议(BDCIA2024)

会议日期:2024年11月15-17日 会议地点:中国-湖北省-黄冈市 主办单位:黄冈师范学院 【大会主席】 【主讲嘉宾】 大会邀请到来自美国、英国、加拿大、新加坡、意大利、越南等10余位领域内学术大咖作主题报告,并与参会人员互动交…

【操作系统】文件管理——文件的物理结构(个人笔记)

学习日期:2024.7.15 内容摘要:文件的物理结构,逻辑结构与物理结构 目录 引言 文件分配方式 连续分配 链接分配 隐式链接 显式链接 索引分配 索引块大小不够装入整个索引表怎么办? ①链接方案 ②多层索引 ③混合索引 …

国产精品ORM框架-SqlSugar详解 进阶功能 集成整合 脚手架应用 专题二

国产精品ORM框架-SqlSugar详解 SqlSugar初识 专题一-CSDN博客 sqlsugar 官网-CSDN博客 4、进阶功能 5、集成整合 6、脚手架应用 4、进阶功能 4.1、生命周期 Queryable 什么时候操作库 Queryable是一个引用类型 Queryable拷贝机制 {ISugarQueryable<Student> quer…

切换网页visibilitychange,的升级版实现

目录 1 需求场景 2 用到的技术 3 日常检测方法 4 一个有意思的场景 5 升级版实现一 5.1 新建 /utils/browser.js 5.2 项目业务组件中使用 6 升级版实现二 6.1 安装js-tool-big-box工具库 6.2 引入 browserBox 对象 6.3 以控制累加定时器为例 6.4 查看定时器效果 1…

go 切片进行链式操作并支持泛型

背景&#xff1a; 由于团队不是专业级别的go开发人员&#xff0c;主开发还是java&#xff0c;用惯了java的lambda表达式特别是流式操作&#xff0c; 所以在用go语言时&#xff0c;发现切片处理起来比较麻烦&#xff0c;看看能不能支持类似流式操作&#xff0c;我这边就研究了下…

什么是STM32?嵌入式和STM32简单介绍

1、嵌入式和STM32 1.1.什么是嵌入式 除了桌面PC之外&#xff0c;所有的控制类设备都是嵌入式 嵌入式系统的定义&#xff1a;“用于控制、监视或者辅助操作机器和设备的装置”。 嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板&#xff0c;是一种专用的计算机系统。…

启动react 18.2.x项目报node错误

1、项目启动报错&#xff0c;node版本问题 可以考虑把node版本降低一点&#xff0c;我当时node版本是20.xx 后面我把本本降到16.13.1 2、tsconfig.json的飘红问题 这里提示的是这个字段已经不用了&#xff0c;建议删除该字段&#xff0c;所以删除该字段就好&#xff0c;其实…

[经典]Axrue部件库:Android系统部件

部件库预览链接&#xff1a;&#xff08;请与班主任联系获取文档&#xff09; 支持版本: Axrure RP 8 文件大小: 1200KB 模板目录 黑、白两种UI风格 每天 文档内容介绍 免费领取资料 “210630” 领取

JavaScript object 数据更新方法

https://andi.cn/page/621560.html

JS-11G1端子排静态时间继电器 约瑟JOSEF

JS-11G端子排静态时间继电器 系列型号&#xff1a; JS-11G1端子排静态时间继电器&#xff1b;JS-11G2端子排静态时间继电器; JS-11G3端子排静态时间继电器; JS-11G4端子排静态时间继电器; JS-11G5端子排静态时间继电器;JS-11G7端子排静态时间继电器; JS-11G9端子排静态时间…

沙袋装袋机的原理和特点_鼎跃安全

在现代工业和建筑领域&#xff0c;沙子等散状物料的包装是一个必不可少的环节。传统的手工包装方式效率低下且劳动强度大&#xff0c;而沙袋装袋机的出现则极大地提高了包装效率和质量。 一、沙袋装袋机的工作原理 沙子通过输送系统从储料仓输送到装袋机的料斗中。输送系统设计…

SpringBoot中动态注册Bean的方式

测试环境&#xff0c;本文源码 Java&#xff1a;8SpringBoot&#xff1a;2.5.14示例场景&#xff1a;动态注册ProxyServlet&#xff0c;间接实现类似于Nginx的反向代理功能 先理解如何实现动态注册 Bean 。 由于在 SpringBoot 中&#xff0c;先进行 Bean 的定义&#xff0c;…

道路巡检准确率优于90%,千寻驰观是怎么做到的?

在7月初落下帷幕的2024世界人工智能大会上&#xff0c;人形机器人十八罗汉齐聚现场&#xff0c;“百模大战”精彩开演&#xff0c;还有多种大模型在产业端应用和落地&#xff0c;AI浪潮席卷而来。千寻位置携北斗时空智能AI应用千寻驰观产品亮相大会&#xff0c;备受瞩目。 2024…

释放DOE的能量,快速确定最佳工艺设置,节省时间、成本和资源

您是否希望降低成本、提高生产效率&#xff0c;并最大限度地减少行业对环境的影响&#xff1f; 所有行业&#xff0c;尤其是钢铁、铝、水泥和石化等能源密集型行业&#xff0c;都面临着应对这些挑战的持续压力。供应链压力、可持续发展、严格的监管环境、日益增长的消费者预期…

在前端vue3 开发媒体查询代码 实现 响应式布局(js 和css 方式)

在上一篇文章中 我介绍了一下 媒体查询的知识以及概念 我只介绍了在html css3 中的使用方式以及书写 下面我来简单来演示一下 在vue3 中怎么使用这个 其实都一样的 只是.vue 的文件 我用的是ant-design-vue3 的前端web端框架 用这个来演示 一. css样式媒体查询 目前的框架 是…

mysql中的存储过程

存储过程的作用:有助于提高应用程序的性能。存储过程可以不必发送多个冗长的SQL语句 废话不说多&#xff0c;直接实操 ##实现num的相加 delimiter $$ CREATE PROCEDURE test1 () begindeclare num int default 0; -- 声明变量,赋默认值为0select num20;end $$ delimiter ; …

誉天教育与武汉晴川学院携手开展鸿蒙实训营,共筑鸿蒙生态新篇章!

在数字经济蓬勃发展的今天&#xff0c;鸿蒙系统作为华为自主研发的操作系统&#xff0c;正逐步构建起一个开放、协同、共赢的生态体系。为了进一步推动鸿蒙生态的繁荣发展&#xff0c;培养更多具备鸿蒙原生应用开发能力的专业人才&#xff0c;誉天教育与武汉晴川学院强强联合&a…