首页 > 其他分享 >docker学习笔记:docker常见网络类型及使用

docker学习笔记:docker常见网络类型及使用

时间:2023-05-30 18:33:19浏览次数:72  
标签:容器 宿主机 常见 网络 笔记 网卡 docker VXLAN

docker网络类型

四类网络模式

Docker网络模式 配置 说明
host模式 –net=host 容器和宿主机共享Network namespace。
container模式 –net=container:NAME_or_ID 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。
none模式 –net=none 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
bridge模式 –net=bridge (默认为该模式)

同一宿主机容器通信

桥接网络模式

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中

docker0-->相当于路由器的LAN口+DHCP服务器

容器网卡-->相当于虚拟机里的ens33网卡

主机网卡-->在虚拟机里,相当于真实机器里模拟出来的vmnet8网卡,用于和虚拟机进行通信的

在这里插入图片描述

host网络模式

如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ak57Uu6-1685439552198)(D:\sanchuang_note\docker\图示\docker host网络.png)]

container网络模式

这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。

在这里插入图片描述

null网络模式

使用null模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。

这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过--network=none来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性在这里插入图片描述

不同宿主机容器通信

overlay

Overlay网络实际上市目前最主流的容器跨节点数据传输和路由方案

overlay用于不同宿主机的容器间的通信,同时支持对消息进行加密

安装docker的容器编排工具swarm会有overlay网络模式

在这里插入图片描述

负载均衡,容器间如何知道对方的nginx服务器,VXLAN通信得到对方容器的信息

VXLAN

VXLAN是一种隧道技术,通过将虚拟网络中的数据帧封装在实际物理网络中的报文中进行传输。具体实现方式:将虚拟网络的数据帧添加VXLAN首部后,封装再物理网络中的UDP报文中,然后以传统网络的通信方式传送给该UDP报文,到达目的主机后,去掉物理网络报文的头部信息以及VXLAN首部,将报文交付给目的终端,整个通信过程目的终端不会感知物理网路的存在

VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端 点)是VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,源服务器发出的原始数据帧,在VTEP上被封装成VXLAN格式的报文,并在IP网络中传递到另外一个VTEP上,并经过解封转还原出原始的数据帧,最后转发给目的服务器。

监听端口4789

在这里插入图片描述

封装格式

在这里插入图片描述

案例:新建桥接网络,并加入容器

1.新建桥接网络,命名为mybridge

[root@docker ~]# docker network create -d bridge mybridge

-d 指定driver,网络类型

2.查看详细信息

[root@docker ~]# docker inspect mybridge
[root@docker ~]# docker network ls

在这里插入图片描述

3.新建容器,加入桥接网络

[root@docker ~]# docker run -d --name mynginx-2 -p8802:80 --network mybridge nginx

--network 指定网络类型

4.再次查看容器信息

[root@docker ~]# docker inspect mybridge

在这里插入图片描述

5.进入容器,查看是否能够上网

[root@docker ~]# docker exec -it mynginx-2 bash
root@a15767ff5119:/# curl www.baidu.com

标签:容器,宿主机,常见,网络,笔记,网卡,docker,VXLAN
From: https://blog.51cto.com/u_16070827/6381224

相关文章

  • Linux安装Docker
    1.Docker官网2.选择Manuals->DockerEngine->Install->CentOS3.执行以下命令:1.yuminstall-yyum-utils2.yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo3.yuminstalldocker-cedocker-ce-clicontainerd.iodocker-b......
  • 六、Redis分布式系统-动力节点最新Redis7视频笔记
    6Redis分布式系统Redis分布式系统,官方称为RedisCluster,Redis集群,其是Redis3.0开始推出的分布式解决方案。其可以很好地解决不同Redis节点存放不同数据,并将用户请求方便地路由到不同Redis的问题。6.1数据分区算法分布式数据库系统会根据不同的数据分区算法,将数据分散存储到不......
  • 第六章Redis分布式系统(动力节点)Redis7笔记
    6Redis分布式系统Redis分布式系统,官方称为RedisCluster,Redis集群,其是Redis3.0开始推出的分布式解决方案。其可以很好地解决不同Redis节点存放不同数据,并将用户请求方便地路由到不同Redis的问题。6.1数据分区算法分布式数据库系统会根据不同的数据分区算法,将数据分散存储到不......
  • docker部署oracle
    docker部署oracle1.拉取镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g2.启动容器dockerrun-id-p1521:1521--nameoracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g3.进行配置,首先执行如下命令进入oracle容器环境中:docker......
  • Objects类:常见方法
            ......
  • Java入门学习必备工具-OneNote笔记
    俗话说:“好记性不如烂笔头”,不得不说,这句话在大部分时候都是适用的。特别是刚入门学习java的小白们,记笔记是非常实用的学习方法也可直接观看视频学习如何使用笔记工具,b站上动力节点老杜最新Java17版教程,从零基础出发,讲解Java编程的基础知识和实践技巧,涵盖了Java编程的方方面面......
  • docker rabbitMQ 安装延时队列插件
    1下载插件到容器内在这个网站上找到插件的下载链接容器内wget或使用dockercp复制到容器内dockercp/rabbitmq_delayed_message_exchange-3.8.0.ezrabbit:/plugins2启用插件#进入容器启用插件dockerexec-itrabbit/bin/bashrabbitmq-pluginsenablera......
  • 页表笔记
    页表页表是操作系统为每个进程提供私有地址空间和内存的机制,决定了内存地址的含义,以及物理内存的哪些部分可以访问。分页硬件用户和内核指令使用的是虚拟地址,而机器的RAM或物理内存是由物理地址索引的。RISC-V页表硬件通过将每个虚拟地址映射到物理地址来为这两种地址建立联系......
  • 常见问题
    常见问题思源适合我吗?或者说我应该如何选择笔记软件?这个问题因人而异,很难统一回答。如果你不太确定思源是否适合你,请看如下建议:如果你需要经常分享笔记或者与别人协作编辑,并且需要数据表格功能,推荐使用:FlowUs息流-新一代知识管理与协作平台我来wolai-不仅仅是未来的......
  • ⑤Redis主从集群-动力节点最全Redis7笔记
    5Redis主从集群为了避免Redis的单点故障问题,我们可以搭建一个Redis集群,将数据备份到集群中的其它节点上。若一个Redis节点宕机,则由集群中的其它节点顶上。5.1主从集群搭建Redis的主从集群是一个“一主多从”的读写分离集群。集群中的Master节点负责处理客户端的读写请求,而Slav......