Docker容器技术实战3

8、docker原生网络

Docker原生网络基于Linux桥接技术和虚拟网络接口,使用了Linux内核的网络功能。每个Docker容器都有自己的网络命名空间,这使得容器之间可以使用独立的IP地址,并隔离了容器的网络栈。

当创建一个Docker原生网络时,Docker会在主机上创建一个Linux网桥(bridge),并将所有连接到该网络的容器连接到这个网桥上。每个容器都会分配一个唯一的IP地址,并可以通过该IP地址进行通信。此外,Docker还会为每个容器分配一个唯一的MAC地址,并通过一个虚拟网桥与主机网络相连

Docker原生网络可以使用不同的网络驱动程序,包括bridge、host、overlay等,以适应不同的场景需求。桥接网络(bridge network)是最常用的一种,它使得容器可以通过桥接连接到主机网络和其他容器。

Docker容器技术实战3_第1张图片Docker容器技术实战3_第2张图片

查看原生网络

Docker容器技术实战3_第3张图片Docker容器技术实战3_第4张图片Docker容器技术实战3_第5张图片Docker容器技术实战3_第6张图片

由于所有的容器都要桥接到docker0上,所以所有容器的数据包都要通过docker0向外发送,当容器数据包想要通过docker0对外发送时,要从eth0接口上走,因此内核的IP服务必须打开。

Docker容器技术实战3_第7张图片

理解为一根网线,一头连接容器,一头连接本机

Docker容器技术实战3_第8张图片Docker容器技术实战3_第9张图片

桥接模式可以允许数据包对外发送,但不可以外部主机直接访问

想让外部主机访问需要使用host网络模式(容器和宿主机共享同一网格线,不会新建虚拟网卡)

Docker容器技术实战3_第10张图片Docker容器技术实战3_第11张图片

host网络模式,容器和宿主机共享一个网络栈,容器并没有创建新的虚拟网卡,同宿主机公用,因此其他主机想访问容器时,只需要访问它的接口地址就行

Docker容器技术实战3_第12张图片Docker容器技术实战3_第13张图片

在server2上

Docker容器技术实战3_第14张图片

注:当再运行一个容器时就会发生冲突

禁用网络模型

Docker容器技术实战3_第15张图片

以上是三种原生网络

自定义网络

Docker容器技术实战3_第16张图片Docker容器技术实战3_第17张图片Docker容器技术实战3_第18张图片

自定义网络地址段

Docker容器技术实战3_第19张图片

当创建多个容器时,可以将它们连接到同一个Docker原生网络中,这样它们就可以通过IP地址进行互相访问。每个容器都会分配一个唯一的IP地址,并可以通过该IP地址进行通信。Docker会为每个容器自动添加DNS记录,以便容器名称之间的互相解析。所以多容器之间的互访是通过dns来进行访问,自定义网络内嵌了dns。

Docker容器技术实战3_第20张图片

不同网络之间被隔离,默认不能通信;不同网络之间通信需要附加虚拟网卡。

Docker容器技术实战3_第21张图片Docker容器技术实战3_第22张图片Docker容器技术实战3_第23张图片

再添加个虚拟网卡连接到不同的网段

Docker容器技术实战3_第24张图片Docker容器技术实战3_第25张图片

9、docker容器通信

joined容器(两个容器共享一个网络栈)

Docker容器技术实战3_第26张图片Docker容器技术实战3_第27张图片

在共享一个网络栈后,端口资源是唯一的

Docker容器技术实战3_第28张图片

端口映射

Docker容器技术实战3_第29张图片Docker容器技术实战3_第30张图片Docker容器技术实战3_第31张图片Docker容器技术实战3_第32张图片

双冗余机制

Docker容器技术实战3_第33张图片Docker容器技术实战3_第34张图片

跨主机容器通信

Docker容器技术实战3_第35张图片Docker容器技术实战3_第36张图片Docker容器技术实战3_第37张图片Docker容器技术实战3_第38张图片

两台虚拟机都各添加一块虚拟网卡,并重启

Docker容器技术实战3_第39张图片Docker容器技术实战3_第40张图片

开启混杂模式并激活

Docker容器技术实战3_第41张图片Docker容器技术实战3_第42张图片Docker容器技术实战3_第43张图片

server2上操作以此类推

Docker容器技术实战3_第44张图片

要保证底层链路的正确,直接使用物理网卡,在创建macvlan的时候没有使用新建接口,不需要创建新的虚拟接口,直接使用eth1,也就是物理接口。

10、docker数据卷

Docker容器技术实战3_第45张图片Docker容器技术实战3_第46张图片Docker容器技术实战3_第47张图片Docker容器技术实战3_第48张图片Docker容器技术实战3_第49张图片Docker容器技术实战3_第50张图片Docker容器技术实战3_第51张图片Docker容器技术实战3_第52张图片Docker容器技术实战3_第53张图片

在宿主机上修改数据相当于直接修改容器内的数据,因为当前宿主机的容器被直接挂载到容器内

Docker容器技术实战3_第54张图片

清理所有数据卷,在清理前需要先删除容器,释放对数据卷的占用

创造数据卷

Docker容器技术实战3_第55张图片

使用bind mount方式挂载数据卷

Docker容器技术实战3_第56张图片Docker容器技术实战3_第57张图片

同时,在挂载时可以控制权限

Docker容器技术实战3_第58张图片

共享卷Docker容器技术实战3_第59张图片

你可能感兴趣的:(docker,容器,运维)