Docker(五)--Docker网络--源生网络、自定义网络

news2024/10/6 6:40:45

文章目录

  • 一、源生网络
    • 1.docker 的网桥---bridge
    • 2.host网络模型
    • 3.none 网络模型
  • 二、自定义网络模型
    • 1.bridge驱动
    • 2.指定网关和子网
    • 3.自定义网络其中内嵌dns解析
    • 4.不同网段的容器通信


一、源生网络

我们先把server7上的harbor仓库down掉,然后查看网络,可以看到Docker 自带的三种网络模型
在这里插入图片描述

1.docker 的网桥—bridge

默认使用桥接模式,桥接到docker0上
在这里插入图片描述
此时我们启动一个容器、安装网桥工具 :

[root@server7 ~]# docker run -d --name demo  nginx
[root@server7 ~]# yum install -y bridge-utils

[root@server7 ~]# brctl show                          ##可以查看容器的网络
bridge name     bridge id               STP enabled     interfaces
docker0         8000.0242ea04cb8d       no              veth6725905

在这里插入图片描述
容器网络veth9b… 以桥接的形式连接到了我们的宿主机网络docker0上。
在这里插入图片描述

从火墙策略可以看出172.17.0 时所有容器的地址,172.17.0.1是容器网关,所有容器的IP地址是在此网段内以递增的方式动态分配的。如果容器停止,那么占用的IP就会被释放出来分配给其他容器。由于此种机制,容器重启之后和原来的IP地址是不一样的
在这里插入图片描述
但是此种机制有一个问题:没有公有IP,即外部无法访问内部网络。 但是容器通过宿主机的NAT规则后可以访问外网。容器通过虚拟网卡将数据包传给docker0网桥,再由Linux内核,数据包路由到eth0出去。
在这里插入图片描述

2.host网络模型

我们使用host网络模型再启动一个容器,使用此种模型不会新建网卡,我们在已经开启的容器的demo2中,开启一个交互式终端:
进入容器查看网络发现和宿主机一模一样, 所以现在直接访问宿主机的IP地址就能访问到这个容器。
可以ping通18主机
[root@server7 ~]# docker run -it --rm --network host --name demo2 busybox
在这里插入图片描述
host模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。
在这里插入图片描述
测试:
删掉多余容器,直接访问虚拟机IP即可访问到容器。(以前为实验有端口访问)
在这里插入图片描述

3.none 网络模型

none禁用网络,只用回环接口,当没有必要连接外部网络时可以使用此网络模型。
[root@server7 ~]# docker run -it --rm --network none busybox
在这里插入图片描述

容器之间的隔离
所有开启的容器都有一个Pid,就相当于主机的一个进程。
在这里插入图片描述
容器的6个命名空间:
在这里插入图片描述
不在这六个命名空间的进程或者变量是没有做隔离的,即各个容器包括宿主机之间是共享的。

二、自定义网络模型

自定义网络模式,docker提供了三种自定义网络驱动: bridge overlay macvlan

1.bridge驱动

[root@server7 ~]# docker network create my_net1
在这里插入图片描述
新建网络和原有bridge网络区别为自定义网络有DNS解析。我们发现容器之间ping IP能ping通,ping 主机名ping不同:
在这里插入图片描述
使用自定义网络新建容器:
在这里插入图片描述
用docker inspect demo查看详细IP信息:
在这里插入图片描述
使用自定义网络创建容器并开启终端:
发现ping主机名能直接ping通。
在这里插入图片描述
停掉demo,再创建nginx容器demo1:
在这里插入图片描述在这里插入图片描述
再将demo启动起来:
在这里插入图片描述
这么做的目的是为了释放原来demo的IP,原来的IP为172.18.0.2 ,将此IP释放出来同时启动demo1时,0.2的IP就会被分配给demo1,demo再次启动时会被分配给后面的地址。
在这里插入图片描述
可以看到demo变成了0.3,demo1变成了0.2。

2.指定网关和子网

使用bridge自定义网络时,我们也可以手动指定网关和子网,在创建时指定参数:–subnet 、–gateway

删除之前的环境:
在这里插入图片描述
指定子网以及网关:
在这里插入图片描述

3.自定义网络其中内嵌dns解析

再次创建my_net1用于实验
在这里插入图片描述
可以ping通容器名
在这里插入图片描述

4.不同网段的容器通信

web1
[root@server7 ~]# docker run -d --name web1 --network my_net1 nginx

在这里插入图片描述

不同网络之间是被隔离的,默认不能通信
在这里插入图片描述
不同网络之间的通信需要附加虚拟网卡
在这里插入图片描述
ctrl+pq 快捷键退出容器终端

并把demo接入到my_net1网络
[root@server7 ~]# docker network connect my_net1 demo
再进入容器,可ping通
[root@server7 ~]# docker attach demo
/ # ping web1
PING web1 (172.20.0.2): 56 data bytes
64 bytes from 172.20.0.2: seq=0 ttl=64 time=0.079 ms
在这里插入图片描述
就相当于给容器加一块不同网段的网卡来连接不同的网络:

在这里插入图片描述
在这里插入图片描述


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

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

相关文章

微服务导学

一、微服务导学1.1 对比单体架构与分布式架构单体架构将业务的所有功能集中再一个项目中开发,打成一个包部署。分布式架构缺点: 模块多导致部署麻烦;架构复杂,难度大1.2 微服务经过良好架构设计的分布式架构方案,微服务…

【Springboot系列】解析Springboot事件机制,从入门到大师

系列文章:Spring Boot学习大纲,可以留言自己想了解的技术点 继续写Springboot系列,争取早点结束。 1、是什么 Spring的事件(Application Event)为Bean与Bean之间的消息通信提供了支持 事件机制中有三种角色&#x…

RTOS中事件集的实现原理以及实用应用

事件集的原理 RTOS中事件集的实现原理是通过位掩码来实现的。事件集是一种用于在任务之间传递信号的机制。在RTOS中,事件集通常是一个32位的二进制位向量。每个位都代表一个特定的事件,例如信号、标志、定时器等。 当一个任务等待一个或多个事件时&…

Hbase备份与恢复工具Snapshot的基本概念与工作原理

数据库都有相对完善的备份与恢复功能。备份与恢复功能是数据库在数据意外丢失、损坏下的最后一根救命稻草。数据库定期备份、定期演练恢复是当下很多重要业务都在慢慢接受的最佳实践,也是数据库管理者推荐的一种管理规范。HBase数据库最核心的备份与恢复工具——Sna…

Spark+Vue+Springboot 协同过滤额音乐推荐大数据深度学习项目

一、项目背景 随着互联网的发展,大数据的到来,传统的音乐行业受到了很大的冲击,原有的音乐数字化给人们生活带来了极大的便利。随着数字音乐的兴起,各大音乐平台层出不穷,人们在音乐平台上收听音乐的时,常常因为歌曲信息繁杂,而不能找到自己想听的音乐。为了解决这个问题,音乐…

Elasticsearch:使用 Logstash 构建从 Kafka 到 Elasticsearch 的管道 - Nodejs

在我之前的文章 “Elastic:使用 Kafka 部署 Elastic Stack”,我构建了从 Beats > Kafka > Logstash > Elasticsearch 的管道。在今天的文章中,我将描述从 Nodejs > Kafka > Logstash > Elasticsearch 这样的一个数据流。在…

modbus转profinet网关连接ABB变频器在博图程序案例

在博图里PLC无需编程利用兴达易控modbus转Profinet网关,将ABB变频器接入到西门子网络中.用到设备为西门子1200PLC,ABB变频器及兴达易控Modbus转profinet网关一个;兴达易控Modbus转profinet协议转换器(XD-MDPN100)一台 打开博图添加1200PLC&am…

121.(leaflet篇)leaflet结合echarts4迁徙图

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【数据挖掘与商务智能决策】第二章 特征工程与数据预处理

数据预处理 非数值类型数据处理 Get_dummies哑变量处理 1. 简单示例&#xff1a;“男”和“女”的数值转换 import pandas as pd df pd.DataFrame({客户编号: [1, 2, 3], 性别: [男, 女, 男]}) df客户编号性别01男12女23男 df pd.get_dummies(df, columns[性别]) df客户…

DetectGPT:使用概率曲率的零样本机器生成文本检测

DetectGPT的目的是确定一段文本是否由特定的llm生成&#xff0c;例如GPT-3。为了对段落 x 进行分类&#xff0c;DetectGPT 首先使用通用的预训练模型&#xff08;例如 T5&#xff09;对段落 ~xi 生成较小的扰动。然后DetectGPT将原始样本x的对数概率与每个扰动样本~xi进行比较。…

浏览器主页被hao123劫持的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

Redis哨兵(Sentinel)模式

前言 上一期实现了Redis的主从复制架构&#xff0c;由于主从模式在主节点宕机故障时整个Redis服务都不能再执行写操作&#xff0c;而无法保证Redis在整个系统中的高可用。 Redis提供了Sentinel哨兵机制来解决以上问题&#xff0c;当哨兵服务监测到master下线或宕机&#xff0…

汽车标定知识整理(二):CCP报文基本命令介绍

目录 一、基本命令 CRO命令报文的基本命令表&#xff1a; 二、基本命令与可选命令帧格式介绍 1、CONNECT——建立连接&#xff08;0x01&#xff09; 2、GET_CPP_VERSION——获取CCP版本&#xff08;0x1B&#xff09; 3、SET_MTA——设置内存传输地址&#xff08;0x02&#…

FPGA_边沿监测理解

一、简易频率计设计中为什么一定要获取下降沿?gate_a:实际闸门信号gate_a_stand:将实际闸门信号打一拍之后的信号gate_a_fall_s:下降沿标志信号cnt_clk_stand: Y值&#xff0c;即在实际闸门信号下&#xff0c;标准时钟信号的周期个数cnt_clk_stand_reg:保存Y值的寄存器核心问题…

展示企业情况的BI数据可视化大屏怎么做?

做综合展示企业情况的BI数据可视化大屏&#xff0c;就意味着要综合展示多个子公司或者部门的数据情况。首先要解决的就是多系统数据的整合、数据孤岛的束缚&#xff0c;其次才是数据分析模型构建、BI数据可视化大屏报表的制作。 1、整合多系统数据&#xff0c;消除数据孤岛现象…

flink大数据处理流式计算详解

flink大数据处理 文章目录flink大数据处理二、WebUI可视化界面&#xff08;测试用&#xff09;三、Flink部署3.1 JobManager3.2 TaskManager3.3 并行度的调整配置3.4 区分 TaskSolt和parallelism并行度配置四、Source Operator(资源算子)五、Sink Operator(输出算子)六、Flink滑…

系统检测维护工具Wsycheck使用(18)

实验目的 &#xff08;1&#xff09;学习Wsycheck的基本功能&#xff1b; &#xff08;2&#xff09;掌握Wsycheck的基本使用方法&#xff1b; 预备知识 windows操作系统的基本知识如&#xff1a;进程、网络、服务和文件等的了解。 Wsycheck是一款强大的系统检测维护工具,进程和…

js求解《初级算法》19.删除链表的倒数第N个结点

一、题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 二、思路 用虚拟头结点&#xff0b;双指针的方法解决该题&#xff0c;我们知道题目要求我们返回的是…

SpringMVC源码:参数解析、方法调用与返回值处理

参考资料&#xff1a; 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头&#xff1a;本文为个人学习笔记&#xff0c;内容比较随意&#xff0c;夹杂个人理解&#xff0c;如有错误&#xff0c;欢迎指正。 前文&#xff1a; 《SpringMVC源码&a…

并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?

第20讲 | 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别&#xff1f; 在上一讲中&#xff0c;我分析了 Java 并发包中的部分内容&#xff0c;今天我来介绍一下线程安全队列。Java 标准库提供了非常多的线程安全队列&#xff0c;很容易混淆。 今天我要问你的…