10_32_Docker【进阶知识】—Docker0网络详解(用来给容器编排,集群部署做铺垫)

本文主要是介绍10_32_Docker【进阶知识】—Docker0网络详解(用来给容器编排,集群部署做铺垫),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、Docker网络

理解Docker0

清空所有环境

测试

Linux里面获取当前的ip地址:ip addr

在这里插入图片描述

  • 三个网络
# 问题:docker 是如何处理容器网络访问的?

在这里插入图片描述

  • tomcat里面的web项目需要访问mysql,这之间是如何访问的呢?

在这里插入图片描述
尝试解决:

# docker run -d -p --name tomcat01 tomcat# 查看容器的内部网络地址:ip addr* 发现容器启动的时候会得到一个eth0@if262的ip地址,这是docker分配的!# docker exec -it tomcat01 ip addr

在这里插入图片描述

# 思考:Linux 能不能 ping 通容器内部?

在这里插入图片描述

# Linux可以ping 通 docker容器内部

解释:
192.168.0.1 :路由器

  • 手机连上wifi之后,分配的就是192.168.0.2
  • 他们就在同一个网段:所以之间是可以ping通的

原理

1、我们每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker,就会有一个网卡叫做:docker0

桥接模式:使用的技术是veth-pair技术
再次测试ip addr
在这里插入图片描述
2、再启动一个容器测试,发现又多了一对网卡
在这里插入图片描述

  • 在Linux里面他是263,绑定了264

在这里插入图片描述

  • 在容器里面他是264,绑定了263
# 我们发现这个容器带来网卡,都是一对对的
# veth-pair 就是一对的虚拟设备接口,他们都是成对出现的,一端连着接口,一端彼此相连
# 正因为这个特性,【veth-pair 充当一个桥梁,连接各种网络虚拟设备的】
# OpenStac,Docker容器之间的连接,OVS的连接,都是使用 veth-pair技术

3、 我们来测试一下 tomcat01 和 tomcat02 是否能ping 通
在这里插入图片描述

# docker exec -it tomcat02 ping 172.18.0.2# 结论:【容器和容器之间是可以互相ping通的】

绘制一个网络模型图【给 tomcat01 和 tomcat02 ping 通做解释】
在这里插入图片描述

# 结论:tomcat01和tomcat02是公用的一个路由器,docker0所有容器不指定网络的情况下(可以通过--net来指定),都是 docker0 路由的,docker会给我们的容器分配一个默认的可用ip
网络基础问题:255.255.0.1/16这里能存多少ip地址(主机)计算机正常的:11111111.11111111.11111111.11111111
改为10进制:255.255.255.255
16就是取前16位网络号【分开网络标识和主机标识】:255.255.0.0* 斜杠后面的数字就表示【子网掩码】* 16位前面就是网络号,后面就是主机号* 16地方写的24就是只剩下最后的255了,就相当于一个域,局域网
所以真正的ip地址是:255 * 255 -2 = 65535(因为主机为全0和全1的保留不用,所以需要减2)* 0.0.0.0:回环地址* 255.255.255.255:子网掩码

可参考:IP地址(分类)、子网掩码、网络号、主机号、子网号

小结

Docker使用的是Linux的桥接,宿主机中是一个Docker容器的网桥 docker0
在这里插入图片描述
Docker 中的所有网络接口都是虚拟的,虚拟的转发效率高!(内网传递)
只要容器删除,对应网桥一对就没了

思考一个场景,我们编写了一个微服务,databast url = ip:,项目不重启,数据库ip换掉了,我们希望可以处理这样的问题,可以名字来访问容器?————docker里有一个命令:–link【老版本】

  • 这里mybatis数据库连接url的时候,每次连接都会重新分配ip。
  • SpringCloud feigh = 服务名
  • mysql ip => 能否做到通过mysql来ping通,这样ip怎么变就不会影响

在这里插入图片描述

  • 输入docker network inspect 5a008c015cac【当前网卡的ID】
    在这里插入图片描述

这篇关于10_32_Docker【进阶知识】—Docker0网络详解(用来给容器编排,集群部署做铺垫)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_40572023/article/details/123473285
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/541485

相关文章

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

MySQL表空间结构详解表空间到段页操作

《MySQL表空间结构详解表空间到段页操作》在MySQL架构和存储引擎专题中介绍了使用不同存储引擎创建表时生成的表空间数据文件,在本章节主要介绍使用InnoDB存储引擎创建表时生成的表空间数据文件,对... 目录️‍一、什么是表空间结构1.1 表空间与表空间文件的关系是什么?️‍二、用户数据在表空间中是怎么

python3 pip终端出现错误解决的方法详解

《python3pip终端出现错误解决的方法详解》这篇文章主要为大家详细介绍了python3pip如果在终端出现错误该如何解决,文中的示例方法讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下... 目录前言一、查看是否已安装pip二、查看是否添加至环境变量1.查看环境变量是http://www.cppcns

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.

mysql中的group by高级用法详解

《mysql中的groupby高级用法详解》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,本文给大家介绍mysql中的groupby... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Spring 缓存在项目中的使用详解

《Spring缓存在项目中的使用详解》Spring缓存机制,Cache接口为缓存的组件规范定义,包扩缓存的各种操作(添加缓存、删除缓存、修改缓存等),本文给大家介绍Spring缓存在项目中的使用... 目录1.Spring 缓存机制介绍2.Spring 缓存用到的概念Ⅰ.两个接口Ⅱ.三个注解(方法层次)Ⅲ.

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp