Docker网络,网络工程师还不赶紧收藏!_网络工程师要学习docker吗(3)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

veth-pair接口:Bridge上连接容器的接口。
在这里插入图片描述

容器中:
通过docker exec -it xxx(容器名称)ifconfig进行查看:
可以看到容器的’物理接口’和回还口信息。

2.查看Bridge上接口信息:
CentOS8为例,命令为bridge link,结果为如下:
在这里插入图片描述

可以看到,2个veth接口和docker0连接在这个Bridge上。

3.查看容器与Bridge上的veth接口的对应关系:
方法1:使用脚本,查看容器ID和veth的对应关系。具体方法请参考:https://blog.csdn.net/tushanpeipei/article/details/116077454,执行结果如下:
在这里插入图片描述

方案二:通过索引来对比:

4.docker inspect network命令:
命令如下:
在这里插入图片描述

其中,使用jq查看IPAM.Config的信息和此网络的IP、网关信息:
在这里插入图片描述

Containers的信息为此网络连接的容器信息:

三、使用主机名进行通信
1.问题:
连接到默认的Bridge的容器,互相可以使用IP地址来通信,但是无法使用主机名来通信。

2.解决方案:
使用–link来通信。
在这里插入图片描述

3.注意点:
–link的原理其实就是在本地添加了对方主机名称和IP地址的映射,但是对端并没有,所以对端依旧无法通过本端的主机名与本端进行通信。容器内映射信息如下:

在这里插入图片描述

6️⃣自定义bridge网络

一、 自定义与默认的bridge的关系图示:
在这里插入图片描述

二、命令:
1.创建bridge网络:
docker network create -d bridge --subnet x.x.x.x/x(子网地址) --gateway x.x.x.x bridge-net1,创建一个名为bridge-net1的网络。
在这里插入图片描述

2.将容器连接到自定义bridge网络:
容器RUN时连接:

 docker run -it --name docker-net1 --network bridge-net1(网络名称) prin/centos-vim-ifconfig /bin/bash
 docker run -it --name docker-net2 --network bridge-net1(网络名称) prin/centos-vim-ifconfig /bin/bash 

容器已经RUN后连接:

docker network connect bridge-net1(网络名称)  docker-net1(容器名称)

3.查看自定义网络的相关信息:
1.可以使用命令docker inspect bridge-net1查看详细信息:
在这里插入图片描述

2.在宿主机上使用ifconfig,可以看到产生了如下的接口:
其中br-xxxxx相当于默认bridge的docker0接口。veth接口则是bridge-net1上连接到容器的虚拟接口。
在这里插入图片描述
在这里插入图片描述

三、特点:
1.在自定义bridge上连接的容器,默认就可以用对方名称进行通信:
在这里插入图片描述

2.不同bridge之间能够互相通信的原因是使用了Docker Engine上的DNS Resolver,直接对IP地址进行解析:
在这里插入图片描述

3.不同bridge上的容器天生隔离:
在这里插入图片描述

4.同一个容器可以接入到多个bridge上,例如经典三件套:Nginx-django-psql

在这里插入图片描述

7️⃣Host网络

一、概述:
Host网络是默认存在的网络,借用了宿主机的网络。

二、命令:
将容器连接到host网络:

docker run -it --name centos\_host --network=host prin/centos-vim-ifconfig /bin/bash

查看接口信息:
ifconfig:可以看到和宿主机的一样。
在这里插入图片描述

三、注意:
如果在host的容器和宿主上同时开放一个端口,会报错。

None网络:
一、概述:
none网络是默认存在的网络,默认只有一个回环接口,无法与外界通信。

二、命令:
将容器设置为none网络:

docker run -it --name centos\_none --network=none prin/centos-vim-ifconfig /bin/bash

查看容器接口信息:
ifconfig:可以看到只有lo接口。
在这里插入图片描述

8️⃣Vxlan网络

一、目的:
连接不同宿主机上的容器,创建集群。

二、原理:
图示:
在这里插入图片描述

在不同宿主机的容器上创建eth1接口,在同一网段,建立overlay的隧道。同时eth0作为underlay的接口,保证底层能够通信。
当Host1和Host2上容器通信时,首先进行overlay的封装,然后再进行underlay的封装,然后将数据发送到对端,对端再进行解封装。

三、纯手工方式:
注意:此方式不推荐,了解即可;后续笔记中记录自动化的方式。
步骤:
1.准备两个虚拟机Docker_docker1(10.1.1.1),Docker_docker2(10.1.1.2),并修改主机名称:
在这里插入图片描述
2.分别在两台设备上设置变量:
在这里插入图片描述

3.在两台设备上下载并解压分布式存储文件。资源可以在网上搜索etcd-v(版本号) -linux-amd64进行下载:
在这里插入图片描述

4.使用脚本在两台设备上激活服务:
Docker_docker1:
在这里插入图片描述
Docker_docker2:同理

5.在两台设备上分布查看集群状况:
在这里插入图片描述

6.停止docker服务,并使用etcd集群重新启动docker:
在这里插入图片描述

7.在一台设备上创建Overlay网络,默认会同步到集群中:
在这里插入图片描述

8.分布在宿主机上创建容器,连接到overlay网络中:
在这里插入图片描述

9.测试网络通信状况(在容器里面互相ping对端名称)和查看网络信息(dockek network ls/docker network inspect qyt_overlay )。

9️⃣物理VLAN网络(MAC VLAN)

一、概念:
在宿主机上使用子接口的方式,将容器接入到vlan中,以保证通信,其应用场景少。

二、图示:
同一个宿主机中:类似于单臂路由。

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一名中级网络工程师学习笔记可能会涵盖多个方面,包括但不限于以下几个重点: 1. **网络基础知识**: - 物理层和数据链路层(TCP/IP模型中的以太网、Wi-Fi等) - 网络协议栈(TCP/IP协议簇,如IP、TCP、UDP、DNS等) - 网络设备(交换机、路由器、防火墙的配置和管理) - OSI模型和七层架构的理解 2. **网络设计与规划**: - 网络拓扑设计(星型、环形、总线型等) - VLAN划分与VXLAN等虚拟网络技术 - QoS(服务质量)与带宽管理 3. **网络安全**: - 防火墙策略与配置 - 入侵检测系统(IDS/IPS)和安全日志分析 - SSL/TLS加密与证书管理 - 安全威胁与防护措施 4. **网络管理与监控**: - SNMP(简单网络管理协议) - NetFlow与sFlow数据分析 - 故障排查和故障转移技术 - 使用工具如PRTG, Nagios等进行网络运维 5. **云计算与虚拟化**: - VPC(Virtual Private Cloud)的设计与实施 - 虚拟化技术(KVM, VMWare, Hyper-V等) - Docker和容器编排(Kubernetes) 6. **自动化与脚本编写**: - Python、Perl或Shell等在网络管理中的应用 - 使用Ansible、Chef等工具进行自动化运维 7. **网络项目案例分析**: - 分析实际项目中的网络设计和优化经验 - 学习业界最佳实践和解决方案 相关问题: 1. 中级网络工程师应具备哪些具体技能证书? 2. 在实际工作中如何进行网络性能监控? 3. 如何利用网络编程知识解决网络问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值