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容器学习四之网络

一、虚拟网卡

1、网卡

网卡是一块可以使计算机网络之间通信的硬件设备,他拥有一个独一无二的MAC地址,这是在网卡被生产之出就已经写入网卡的ROM中,也就是说计算机网络中所有的计算机都有一个独一无二的MAC地址。当计算机在网络中间进行通信时,还需要绑定一个IP,也就是IP用来在网络中进行选址,但是IP是经常变动的,而MAC地址却是唯一不变的,所以我们可以通过IP去定位到某一个网络,然后再通过MAC地址去定位到具体的某一个设备,网络会给每个网卡分配一个IP地址,这个地址是可变的。可以通过ipconfig /all来查看网卡信息:
在这里插入图片描述
2、虚拟网卡

虚拟网卡技术就是从软件层面虚拟出一个网卡设备,目前的物理网卡基本上都支持虚拟化操作,那么虚拟出来的网卡也拥有自己的MAC地址,此时物理网卡就相当于一个交换机,虚拟网卡就相当于连接交换机的网络设备。

二、Docker中的网络

当我们安装好Docker之后,就会默认生成一个针对物理主机的虚拟网卡
在这里插入图片描述
当你用物理主机去ping这个网卡时发现是可以ping通的,也就是他们之间是可以通信的
在这里插入图片描述
前文,可知容器自身也有自己的一个网络,那么此时就会有个问题就是容器间又是怎么通信的呢?以及不同docker进程之间又是怎么通信的呢?

在其官方文档中有专门针对网络进行介绍,他有六种网络模式:

  1. bridge:桥接模式,默认是的模式,也就是当前的应用部署在一个独立的容器中,用于容器间通信
  2. host:可以使用主机的网络进行联网通信,但是不可以与主机中其他进行通信
  3. overlay:用于多个docker进程间的通信
  4. ipvlan:可以让用户完全控制IPV4和IPV6选址
  5. macvlan:可以针对容器分配MAC地址
  6. none:相当于禁用所有网络

接下来,就结合官方文档,进一步分析这几种网络模式。

1、bridge
桥接网络是在网段之间转发流量的链路层设备,在docker中网桥模式可以使连接到同一网桥的容器相互间通信,并且可以隔离未连接到相同网桥的其它容器,这也是docker默认的一个网络模式,也就是当启动容器的时候,不指定一个网络,就是默认是使用网桥模式(可以通过docker network ls来查看)。
在这里插入图片描述
可以发现当前只有三种模式,用户也可以自定义网桥通过docker network create命令来创建,具体可以参考官网中的docker network命令。
样例如下:
在这里插入图片描述
此时我们创建了一个网段为172.18.0.0的网络my-net,当前我们的容器运行了两个应用
在这里插入图片描述
此时,我们把新增加的网段添加到mydocker01这个容器上,当我们未添加时,两个容器都是用的bridge网段
在这里插入图片描述
添加之后,查看my-net网络时就会发现mydocker01容器已经使用了这个网络
在这里插入图片描述
并且可以正常访问应用
在这里插入图片描述
brige模式还可以在容器间根据容器名来进行访问,当我们想要访问数据库的时候,我们就可以根据部署数据库的容器名来访问,而不需要具体的ip地址。

2、host
如果容器使用的主机模式,那么容器不会产生一个ip地址,也就是容器会共享主机网络,如果你绑定了一个8080端口应用此时可以直接通过主机的ip+端口来访问,相对的,此时端口映射也会失效。

3、overlay

overlay模式主要是针对不同docker进程间的通信,当我们的数据库部署在不同的机器节点中,此时不同机器间的通信就需要overlay模式。这里就先不展开(需要用到docker swarm技术)

后续几个就不继续展开。

三、总结

本文简单介绍了docker中的一个网络环境,以及容器间的网络连接、docker集群中的网络连接等,更多的内容将在后续的学习中进行展开。

以上,有任何不对的地方请指正,谢谢!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 16:03:51  更:2022-02-28 16:05:25 
 
开发: 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/16 3:35:10-

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