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

[Docker][Docker NetWork][下]详细讲解

目录

  • 1.网络管理命令
    • 1.docker network creatre
    • 2.docker network inspect
    • 3.docker network connect
    • 4.docker network disconnect
    • 5.docker network prune
    • 6.docker network rm
    • 7.docker network ls
  • 2.docker bridge 详解
    • 0.基本概念
    • 1.默认 bridge
    • 2.自定义 bridge
    • 3.DNS解析
    • 4.端口暴露和转发
  • 3.docker host 详解
  • 4.docker container 详解
  • 5.docker none 详解


1.网络管理命令

1.docker network creatre

  • 功能:创建自定义网络
  • 语法:`docker network creatre [OPTIONS] NETWORK
  • 关键参数
    • -d, --driver:网络驱动
    • --gateway:网关地址
    • --subnet:表示网段的CIDR格式的子网
    • --ipv6:启动ipv5
  • 示例docker network creatre --driver=bridge --subnet=192.168.0.0/16 br0

2.docker network inspect

  • 功能:查看网络详情
  • 语法docker network inspect [OPTIONS] NETWORK [NETWORK...]
  • 关键参数-f, --format:指定格式

3.docker network connect

  • 功能
    • 将容器连接到网络,可以按名称或ID连接容器
    • 一旦连接,容器可以与同一网络中的其他容器通信
  • 语法docker network connect [OPTIONS] NETWORK CONTAINER
  • 关键参数
    • --ip:指定IP地址
    • --ip6:指定IPV6地址
  • 示例
    # 将正在运行的容器连接到网络
    docker network connect multi-host-network my_container1# 启动时将容器连接到网络
    # 还可以使用docker run --network=<network-name>选项启动容器并立即将其连接到网络
    docker run -itd --network=multi-host-network SnowK_Container# 指定容器的IP,可以指定要分配给容器网络接口的IP地址
    docker network connect --ip 172.21.26.211 multi-host-network my_container2
    

4.docker network disconnect

  • 功能:断开网络
  • 语法docker network disconnect [OPTIONS] NERWORK CONTAINER
  • 关键参数-f:强制退出
  • 示例docker network disconnect multi-host-network my_container

5.docker network prune

  • 功能:删除不使用的网络
  • 语法docker network prune [OPTIONS]
  • 关键参数-f, --force:强制删除

6.docker network rm

  • 功能:删除1个或多个网络
  • 语法:`docker network rm NETWORK [NETWORN…]
  • 关键参数-f:强制删除

7.docker network ls

  • 功能:列出网络
  • 语法docker network ls [OPTIONS]
  • 关键参数
    • -f, --filter:指定过滤条件
    • --format:指定格式
    • --no-trunc:不截断
    • -q, --quiet:仅仅显示 id

2.docker bridge 详解

0.基本概念

  • Docker Bridge网络采用内置的bridge驱动,bridge驱动底层采用的是 Linux内核中Linux bridge技术
    • 就网络而言,bridge网络是在网络段之间转发流量的链路层设备, 而网桥可以是在主机内核中运行的硬件设备或软件设备
    • 就Docker而言,桥接网络使用软件网桥docker0,它允许连接到同一网桥网络的容器进行通信,同时提供与未连接到该网桥网络容器的隔离
  • Docker Container的bridge桥接模式
    请添加图片描述

1.默认 bridge

  • 默认情况下,创建的容器在没有使用--network参数指定要加入的 docker 网络时, 默认都是加入 Docker 默认的单机桥接网络

  • 默认的bridge网络会被映射到内核中名为docker0的网桥上

    • Docker默认的bridge网络和Linux内核中的docker0网桥是对应关系
    • bridge是Docker对网络的命名,而docker0是内核中网桥的名字
      请添加图片描述
  • 容器间的网络通信

    • 安装Docker的时候会默认docker0这个网桥软件设备,这个docker0设备可以类比成交换机/路由器设备
    • 当创建好容器之后, 如果不手动指定网络模式,默认会使用bridge网络, 容器会自动连接到docker0这个网桥设备, 然后通过这个网桥来进行容器间的通信

2.自定义 bridge

  • 除了默认的docker0,也可以创建一些自定义的bridge,让运行的容器通过自定义bridge进行通信
  • 创建docker network create -d bridge new-bridge
  • 连接docker run -itd --name c3 --network new-bridge SnowK
    • 通过--network选项指定要连接的网络,
    • 如果不指定, 默认是连接的bridge

3.DNS解析

  • Docker自定义桥接网络是支持通过Docker DNS服务进行域名解析的
    • 可以直接使用容器名进行通信
    • 因为DNS服务可以解析容器名到IP地址的映射, 但是默认的bridge网络是不支持DNS的

4.端口暴露和转发

  • 暴露方式:端口暴露有2种方式,在启动容器的时候添加端口参数
    • -P:暴露所有端口
      • 将指定的容器端口映射至主机所有地址的一个动态端口
        • 动态端口 即 随机端口
      • 具体的映射结果可使用docker port命令查看
    • -p:暴露指定端口
      • 语法-p <hostPort>:<containerPort>
      • 功能:将容器端口<containerPort>映射至指定的主机端口<hostPort>
  • 端口转发:连接bridge网络的容器只能与连接在当前网络中的容器进行通信。如果一个容器想要对外提供一些网络服务的话,需要进行端口转发才可以实现
    • 端口转发将Docker容器的端口映射到宿主机的端口上
      • 任何发送到宿主机该端口的流量,都会被转发到容器的端口中
    • 如下图所示,两个容器内部均开放80端口,它们分别映射到宿主机的8088和8089端口
      • 任何发送到 8088 端口的流量都会转发到Container 1容器的80端口
      • 任何发送到8089端口的流程都会转发到Container 2 容器的80端口
        请添加图片描述

3.docker host 详解

  • Docker容器运行默认都会分配独立的Network Namespace隔离子系统

  • 但是如果基于host网络模式,容器将不会获得一个独立的Network Namespace,而是和宿主机共用同一个Network Namespace

    • 容器将不会虚拟出自己的网卡,IP等,而是直接使用宿主机的IP和端口
    • 连接到host网络的容器共享宿主机的网络栈,容器的网络配置与宿主机完全一样
      请添加图片描述
  • 适用场景

    • bridge网络在通信的时候需要进行端口转发以及NAT地址转换, 这势必会消耗掉一些资源以及性能
    • 直接使用host网络最大的好处就是性能好
      • 如果容器对网络传输效率有较高的要求,建议选择host网络
      • 当然也会牺牲一些东西,比如要考虑端口冲突问题,其他服务已经被占用的端口就不能再使用了

4.docker container 详解

  • Docker Container的other container网络模式是Docker中一种较为特别的网络的模式

    • 之所以称为“other container模式“,是因为这个模式下的Docker Container,会使用其他容器的网络环境
    • 之所以称为“特别”,是因为这个模式下容器的网络隔离性会处于bridge桥接模式与host模式之间
      • Docker Container共享其他容器的网络环境,则至少这两个容器之间不存在网络隔离
      • 而这两个容器又与宿主机以及除此之外其他的容器存在网络隔离
  • Docker Container的other container网络模式
    请添加图片描述

  • Docker Container的other container网络模式实现逻辑如下:

    • 查找other container(即需要被共享网络环境的容器)的网络namespace
    • 将新创建的Docker Container(也是需要共享其他网络的容器)的namespace,使用other container的namespace
  • 操作实例

    # 创建一个容器
    docker run -itd --name netcontainer1 SnowK# 使用netcontainer1的网络创建另外一个容器
    docker run -itd --name netcontainer2 --network container:netcontainer1 SnowK
    
  • 适用场景

    • 在这种模式下的Docker Container可以通过localhost来访问namespace下的其他容器,传输效率较高
    • 但是两个容器之间存在依赖,如果依赖容器重启了,会导致另外一个服务的网络不可用

5.docker none 详解

  • none网络就是指没有网络挂在这个网络下的容器除了lo(本地回环),没有其他任何网卡
  • 适用场景
    • 针对一些对安全性要求比较高并且不需要联网的应用, 可以使用none网络
      • 比如生成随机密码, 避免生成密码被第三方获取
    • 一些第三方的应用可能需要docker帮忙创建一个没有网络的容器, 网络由第三方自己来配置

相关文章:

[Docker][Docker NetWork][下]详细讲解

目录 1.网络管理命令1.docker network creatre2.docker network inspect3.docker network connect4.docker network disconnect5.docker network prune6.docker network rm7.docker network ls 2.docker bridge 详解0.基本概念1.默认 bridge2.自定义 bridge3.DNS解析4.端口暴露…...

安卓系统在未来如何更好地解决隐私保护与数据安全的问题?

安卓系统可以通过以下方式更好地解决隐私保护与数据安全的问题&#xff1a; 强化权限控制&#xff1a;安卓系统可以进一步加强对应用程序权限的管理&#xff0c;确保用户能够清楚地知道应用程序需要哪些权限&#xff0c;并给予用户更多的控制权&#xff0c;例如允许用户选择性地…...

MySQL innodb单表上限一般多少

参考&#xff1a;https://www.zhihu.com/question/351797203/answer/3137174084 1.MySQL innodb单表上限为啥都说是2k万条 2.GaussDB for MySQL 为啥可以突破单表2k万的限制 要讨论这两个问题&#xff0c;得先明确性下实际的DB部署环境 表是索引数据是放在磁盘上的&#xf…...

更小、更安全、更透明:Google发布的Gemma推动负责任AI的进步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

基于Django框架的医疗耗材管理系统的设计实现-计算机毕设定制-附项目源码(可白嫖)48999

摘 要 在目前的形势下&#xff0c;科技力量已成为我国的主要竞争力。而在科学技术领域&#xff0c;计算机的使用逐渐达到成熟&#xff0c;无论是从国家到企业再到家庭&#xff0c;计算机都发挥着其不可替代的作用&#xff0c;可以说计算机的可用领域遍及生活、工作的各个方面。…...

物联网协议篇(1):modbus tcp和modbusRTU的区别是什么?

Modbus TCP和Modbus RTU是Modbus协议中的两种主要变体,它们在多个方面存在显著的区别。以下是它们之间的主要区别: 1. 物理层和数据传输方式 Modbus TCP (TCP/IP): 使用以太网作为物理层,通过TCP/IP协议进行通信。数据以数据包的形式在TCP连接上传输,具有较高的通信速度和…...

JVM系列 | 对象的消亡——HotSpot的设计细节

HotSpot 的细节实现 文章目录 HotSpot 的细节实现OopMap 与 根节点枚举根节点类型及说明HotSpot中的实现 OopMap 与 安全点安全点介绍如何保证程序在安全点上&#xff1f; 安全区域记忆集与卡表记忆集卡表 写屏障并发的可达性分析&#xff08;与用户线程&#xff09;并发可达性…...

vue 运行或打包过程报错 JavaScript heap out of memory(内存溢出)

安装 increase-memory-limit npm install increase-memory-limit 运行increase-memory-limit ./node_modules/.bin/increase-memory-limit 运行后会报以下错误&#xff1a; "node --max-old-space-size10240" 不是内部或外部命令&#xff0c;也不是可运行的程序…...

git分支提交方法

先下载最新代码 改动文件覆盖 cp 文件到~/file/ git add添加文件 git commit提交本地 建立分支 git diff .c git status -uno git add git commit git checkout -b issue-lyd git push origin issue-lyd...

从微架构到向量化--CPU性能优化指北

引入 定位程序性能问题&#xff0c;相信大家都有很多很好的办法&#xff0c;比如用top/uptime观察负载和CPU使用率&#xff0c;用dstat/iostat观察io情况&#xff0c;ptrace/meminfo/vmstat观察内存、上下文切换和软硬中断等等&#xff0c;但是如果具体到CPU问题&#xff0c;我…...

声声入耳,事事如意 爱可声「如意」助听器即将上市!

如意助听器 Charm 爱可声全新系列「如意」助听器即将上市&#xff01; 此次新品充分考虑了不同听损以及年龄的用户需求&#xff0c; 融合三大强劲性能。 1、多群体覆盖&#xff0c;定制个性化方案 如意助听器针对不同听损程度的听障患者设计了不同款式助听器&#xff0c;贴…...

生物实验室设备文件采集如何才能质量和效率双管齐下?

生物实验室的设备文件采集是实验室运营、科研活动和数据科学实践应用中不可或缺的一环。通过数据采集&#xff0c;实验室可以优化资源配置、提高实验结果的准确性和可靠性、支持科研水平的提升&#xff0c;并确保数据的安全性和可追溯性。因此&#xff0c;实验室应高度重视设备…...

Framework源码整编、单编、烧录过程

目录 一.背景 二.整编方式 二.单编方式 三.烧录 一.背景 源码编译分为整编和单编,整编通常耗时较长,单编则速度很多,如果我们进行一个小的修改想要立马验证的话单编就很合适 二.整编方式 开始执行编译操作,总共三步. 执行source操作source build/envsetup.sh .执行lunc…...

TypeScript类型断言

TypeScript类型断言是TypeScript中一个强大且有用的特性&#xff0c;它允许开发者在编译时明确指定一个值的类型&#xff0c;即使TypeScript无法自动推断出这个类型。类型断言类似于其他编程语言中的类型转换&#xff0c;但它不会改变变量的运行时值&#xff0c;而只是告诉编译…...

Mallet:一款针对任意协议的安全拦截代理工具

关于Mallet Mallet是一款功能强大的协议安全分析工具&#xff0c;该工具支持针对任意协议创建用于安全审计的拦截代理&#xff0c;该工具本质上与我们所熟悉的拦截Web代理类似&#xff0c;只是通用性更强。 工具运行机制 Mallet建立在Netty框架之上&#xff0c;并且依赖于Net…...

【IEEE出版】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024,9月20-22)

第五届大数据、人工智能与软件工程国际研讨会&#xff08;ICBASE 2024&#xff09;将于2024年09月20-22日在中国温州隆重举行。 会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家学者、工程技术人员、技术研发人…...

自修室预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;公告通知管理&#xff0c;自修室管理&#xff0c;座位预约管理&#xff0c;预约取消管理&#xff0c;管理员管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&a…...

用于跟踪个人图书馆的BookLogr

什么是 BookLogr &#xff1f; BookLogr 是一款网络应用&#xff0c;旨在帮助您轻松管理个人图书馆。这项自托管服务可确保您完全控制数据&#xff0c;提供安全且私密的方式来跟踪您拥有、阅读或希望阅读的所有书籍。您也可以选择向公众自豪地展示您的图书馆&#xff0c;与您的…...

深入解析JVM垃圾回收机制:Full GC、Minor GC与Major GC

目录 引言垃圾回收的基本概念 什么是垃圾回收GC的分类JVM内存模型 堆内存非堆内存Minor GC 触发条件运行机制对性能的影响...

Windows10点击文件夹右键卡死的解决办法

1、首先同时按下【WinR】打开运行页面&#xff0c;输入命令【regedit】按下回车或者点击确定。 2、打开注册表编辑器后&#xff0c;定位到如下位置“HKEY_CLASSES_ROOT\Directory\Background\Shellex\ContextMenuHandlers”。 3、然后在其中将所有名为“New”的文件或项全部删…...

C# 设计模式之单例模式

总目录 前言 本文是个人基于C#学习设计模式总结的学习笔记&#xff0c;希望对你有用&#xff01; 1 基本介绍 定义&#xff1a;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。 本质就是保证在整个应用程序的生命周期中&#xff0c;任何一个时刻&#xff0c;单例…...

【组合数学】【Python】【小练习】一、斯特灵近似式求阶乘

一、问题介绍 斯特灵&#xff08;Stirling&#xff09;近似式&#xff0c;是数学分析中&#xff0c;用于求阶乘近似值的一个常用公式&#xff0c;其简单的表述形式为&#xff1a; 二、Python实现 使用Python&#xff0c;循环从n1至n98&#xff0c;分别输出n的阶乘值、斯特灵公…...

【IEEE Fellow特邀报告,JPCS独立出版】第四届电子通信与计算机科学技术国际学术会议(ECCST 2024,9月20-22)

2024年第四届电子通信与计算机科学技术国际学术会议将于2024年9月20-22日在中国上海举行。 会议旨在为从电子与通信、网络、人工智能与计算机技术研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发展趋势&#xff0c;拓宽研究思…...

DockerCompose部署示例

目录 前言 1. 初识DockerCompose 2. 安装DockerCompose 3. 部署微服务项目 1&#xff09;找一个目录&#xff0c;创建一个新的cloud-demo文件夹。 2&#xff09;在cloud-demo文件夹创建一个docker-compose.yml文件&#xff0c;然后编写下面内容&#xff1a; 3&#xff09…...

【云原生】Helm来管理Kubernetes集群的详细使用方法与综合应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

电源插头应该统一方向

大家在使用插排的时候就会发现&#xff0c;有的横向&#xff0c;有的竖向。 国家强制规定&#xff0c;统一方向&#xff0c;插排能方便使用。...

大学新生编程入门最佳攻略

引言 编程的重要性&#xff1a;简述编程在当今社会的地位&#xff0c;为何它是大学生的必备技能。目标设定&#xff1a;明确文章旨在帮助新生从零基础开始&#xff0c;逐步成长为编程高手。 方向一&#xff1a;编程语言选择 1. 编程语言概览 介绍几种流行语言&#xff1a;如…...

MySQL 的binlog 、undolog 、redolog

Binlog (二进制日志) bin Log 作用 用于记录所有修改数据库数据的 SQL 语句或行级别的变化&#xff0c;主要用于主从复制和数据恢复。 binlog格式 STATEMENT模式&#xff1a;binlog里面记录的就是SQL语句的原文。优点是并不需要记录每一行的数据变化&#xff0c;减少了binlo…...

【计算机网络】三次握手、四次挥手

问&#xff1a;三次握手 四次挥手 TCP 连接过程是 3 次握手&#xff0c;终止过程是 4 次挥手 3次握手 第一步&#xff1a;客户端向服务器发送一个带有 SYN&#xff08;同步&#xff09;标志的包&#xff0c;指示客户端要建立连接。 第二步&#xff1a;服务器收到客户端的请求…...

Spring Boot中的全局异常处理:@RestControllerAdvice的应用

在现代Web开发中&#xff0c;异常处理是一个不可或缺的部分。良好的异常处理不仅能提高系统的健壮性&#xff0c;还能提升用户体验。在Spring Boot中&#xff0c;全局异常处理的实现可以通过使用RestControllerAdvice注解来完成。本文将详细介绍如何使用RestControllerAdvice和…...

广州机械网站建设/营销app

工作窃取在本系列的第一部分中&#xff0c;您学习了足够JavaScript和CSS来使动画角色在浏览器中移动。 在本文中&#xff0c;我将探讨一些计算机游戏技术&#xff0c;这些技术将使我们能够对多个精灵进行动画处理&#xff0c;并使它们彼此交互。 如果您想在家中试用此代码&…...

wordpress可视化菜单/黄页推广

一、选择题(本题为单项选择题&#xff0c;每题1分&#xff0c;多选&#xff0c;不选或错选均不得分&#xff0c;)&#xff1a;(25分)1、世界上第一台电子数字计算机是(B)年出现的。A、1958B、1946C、1965D、19472、微型计算机的发展史可以看作是(A )的发展历史。A、微处理器B、…...

重庆网站建设营销/站长统计app最新版本2023

本文要谈的IM通信协议指的是应用层通信“语言”&#xff0c;并非指传输层协议&#xff08;如TCP、UDP&#xff09;。IM通信协议的制定是IM开发中起点&#xff0c;也是贯穿设计、开发、运维始终的核心所在&#xff0c;通信协议设计的好坏&#xff0c;直接影响后绪环节的用户体验…...

哈尔滨网站基础优化/百度运营优化师

for循环的作用&#xff1a;注意&#xff1a;要主要满足条件一和二后是先执行语句&#xff0c;后再执行条件三。简单重复的输出for(int i0&#xff1b;i<10;i){printf("对一句话简单重复输出输出10");printf("\n")&#xff1b;}其基本结构&#xff1a;(如…...

贵阳网站建设包首页/百度爱采购客服电话

系列文章目录 第二章计算机网络网络应用之Socket编程应用-应用编程接口&#xff08;API&#xff09; Socket编程-应用编程接口&#xff08;API&#xff09;系列文章目录一、Socket编程-应用编程接口&#xff08;API&#xff09;1.网络程序设计接口2.应用编程接口&#xff08;AP…...

推广网站链接怎么做/百度口碑网

KEIL uVision&#xff0c;KEIL MDK&#xff0c;KEIL For ARM&#xff0c;RealView MDK&#xff0c;KEIL C51&#xff0c;KEIL C166&#xff0c;KEIL C251 从接触MCS-51单片机开始&#xff0c;我们就知道有一个叫KEIL的软件。在开发单片机时&#xff0c;使用的是C语言或者汇编语…...