IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker网络 -> 正文阅读

[系统运维]Docker网络

Docker网络

理解Docker0

三个网络:
在这里插入图片描述

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

在这里插入图片描述
启动一个tomcat容器

docker run -d -P --name tomcat01 tomcat

查看容器的内部网络地址ip addr,发现容 器启动的时候会得到一个 eth0@if114 ip地址, docker分配的!

docker exec -it tomcat01 ip addr

在这里插入图片描述
思考:liunx能不能ping通容器内部?
在这里插入图片描述
可见linux可以Ping通容器内部

原理:
1、我们每启动一个docker容器, docker就会给docker容器分配一个ip ,我们只要安装了docker ,就会有一个网卡docker0。
桥接模式,使用的技术是evth-pair技术!
再次测试Linux的 ip addr
在这里插入图片描述
2.再启动一个容器测试,发现又多了一对网卡
在这里插入图片描述
在这里插入图片描述

我们发现这个容器带来网卡,都是一对对的
evth-pair就是一对的虚拟设备接口,他们都是成对出现的,一段连着协议,一段彼此相连。正因为有这个特性,evth-pair充当一个桥梁,连接各种虛拟网络设备的
OpenStac,Docker容器之间的连接,OVS的连接,都是使用evth-pair 技术

3.我们来测试下tomcat01和tomcat02是否可以ping通

在这里插入图片描述
结论:容器和容器之间也是可以相互ping通的
网络模型图:
在这里插入图片描述
结论: tomcat01 和tomcat02公用的一个路由器, docker0。
所有的容器不指定网络的情况下,都是docker0路由的, docker会给我们的容器分配一个默认的可用IP
在这里插入图片描述
Docker使用的是Linux的桥接,宿主机中是一一个Dokcer容器的网桥docker0。
只要容器删除,对应网桥一对就没了!

–link

思考:我们是否可以使用容器名来进行访问?
在这里插入图片描述
可见,直接使用容器名,容器间是不能ping通的

解决:通过–link可以解决网络连通问题

docker run -d -P --name tomcat03 --link tomcat02 tomcat

在这里插入图片描述
存在问题:反向不能Ping通
在这里插入图片描述
查看docekr网络:
在这里插入图片描述
进入bridge内部:

docker network inspect b099380675b1

在这里插入图片描述
查看tomcat03 的hosts配置,

docker exec -it tomcat03 cat /etc/hosts

在这里插入图片描述
本质探究: --link就是我们在hosts配置中增加了一个172.18.0.3 tomcat02
我们现在玩Docker已经不建议使用-link 了!|

自定义网络!不适用docker0 !
docker0问题:他不支持容器名连接访问!

自定义网络

查看所有网络

docker network ls

在这里插入图片描述
网络模式
bridge :桥接docker (默认,自己创建也使用bridge模式)
none:不配置网络
host :和宿主机共享网络
container :容器网络连通! ( 用的少!局限很大)

测试

先将容器全部清除

我们直接启动的命令 - -net bridge(默认), 而这个就是我们的docker0
以下两条命令相等:

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat01 --net bridge tomcat

docker0特点:默认, 域名不能访问,–1ink可 以打通连接!

我们可以自定义一个网络:

查看命令:
在这里插入图片描述
在这里插入图片描述
自定义一个网络:
–driver bridge
–subnet 192.168. 0.0/16
–gateway 192.168.0.1

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

在这里插入图片描述
查看网络信息:

docker network inspect mynet

在这里插入图片描述
现在我们的网络已经创建好了,
使用我们自己创建的网络来启动容器:

docker run -d -P --name tomcat-net-01 --net mynet tomcat

docker run -d -P --name tomcat-net-02 --net mynet tomcat

再次查看网络信息
在这里插入图片描述

使用我们自定义的网络创建的容器之间可以通过容器名字相互ping通

docker exec -it tomcat-net-01 ping tomcat-net-02

在这里插入图片描述

我们自定义的网络docker都已经帮我们维护好了对应的关系,推荐我们平时这样使用网络!
好处:
redis -不同的集群使用不同的网络,保证集群是安全和健康的
mysql -不同的集群使用不同的网络,保证集群是安全和健康的

网络连通

再创建两个默认网络下的容器 tomcat01和tomcat02
在这里插入图片描述
问题:默认docker0网络下的容器与我们自己创建的网络下的容器之间能否ping通?
在这里插入图片描述
可见不同网络下的容器之间是不能ping通的

我们可以将容器与网络之间进行连通
命令:

docker network connect

在这里插入图片描述
测试打通tomcat01 一mynet

docker network connect mynet tomcat01

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

可见连通之后就是将tomcat01 放到了mynet 网络下,然后就可以ping通了
在这里插入图片描述

一个容器两个ip地址!
类似于阿里云服务:中的公网ip和私网ip
结论:假设要跨网络操作别人,就需要使用docker network connect连通!。。。。|

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 11:10:24  更:2021-08-02 11:10:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 0:39:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码