docker-数据持久化-数据卷-四种网络模式-常见文件使用
一、数据持久化
容器中的数据保存在磁盘中,这就是数据持久化(data persistence)。
容器就是一个进程,一个容器只对应一个进程。
二、数据卷(volume)
2.1 查看数据卷
[root@docker ~]# cd /var/lib/docker/
[root@docker docker]# ls
buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes
[root@docker docker]# cd volumes/
[root@docker volumes]# ls
backingFsBlockDev
c4a09dcc10d844330dc008a1c60b484903f8bdcd38e11a89c661066ae433ce6d
ef38b586e6412c9e8bb306f211c60c2b500ee1f7e8f0f70e2f4d1cfbbccc7296
f77ca061d034d89cf2ee4fcd83d78ad74bae280cd475ccdae606fba82a105c68
metadata.db
2.2 查看数据卷详细信息
docker volume inspect sc

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apEz9Xm5-1662086874715)(D:\Typora\photo\image-20220826161849785.png)]](https://i-blog.csdnimg.cn/blog_migrate/2447fec5b64466ffaaa53375eb4850bd.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Dtry3yW-1662086874716)(D:\Typora\photo\image-20220826162032359.png)]](https://i-blog.csdnimg.cn/blog_migrate/f862c403f767d19f7a47820760299f59.png)
2.3 创建卷
docker volume create nginx-web
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aVi6jq3u-1662086874716)(D:\Typora\photo\image-20220826165027381.png)]](https://i-blog.csdnimg.cn/blog_migrate/95eb4129b710eba1ac05942771193b23.png)
2.4 删除卷
docker volume rm nginx-web
2.5 挂载
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WbUOecto-1662086874716)(D:\Typora\photo\image-20220826164804848.png)]](https://i-blog.csdnimg.cn/blog_migrate/4388105ae5e7cfa5233e9e1289344f21.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RvJEi3Lb-1662086874716)(D:\Typora\photo\image-20220829100534223.png)]](https://i-blog.csdnimg.cn/blog_migrate/e2ec7a9c81c273f7d9b054b7720da6eb.png)
三、docker四种网络模式
3.1 实现原理
Docker使用Linux桥接(参考《Linux虚拟网络技术》),在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。
Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法通过直接Container-IP访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即docker run创建容器时候通过 -p 或 -P 参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器。
3.2 四类网络模式
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65Sndoje-1662086874717)(D:\Typora\photo\image-20220829152431850.png)]](https://i-blog.csdnimg.cn/blog_migrate/b6faa6c3d9bb7259c40223ae0282e1e9.png)
host模式
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。
Host模式如下图所示:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Ib3989o-1662086874717)(D:\Typora\photo\image-20220829152504318.png)]](https://i-blog.csdnimg.cn/blog_migrate/5119db47e9487fb21e237e0e693d8e55.png)
container模式
这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。
Container模式示意图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z11ny6E1-1662086874718)(D:\Typora\photo\image-20220829152533252.png)]](https://i-blog.csdnimg.cn/blog_migrate/1887bc6bd4d954e01418c4921901c6ef.png)
none模式
使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过–network=none来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。
None模式示意图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFKFYBE0-1662086874718)(D:\Typora\photo\image-20220829152606442.png)]](https://i-blog.csdnimg.cn/blog_migrate/17aeae85775bd530a6c1d67fa4686517.png)
bridge模式
当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。可以通过brctl show命令查看。
bridge模式是docker的默认网络模式,不写–net参数,就是bridge模式。使用docker run -p时,docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看。
bridge模式如下图所示:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7wVLAhzI-1662086874718)(D:\Typora\photo\image-20220829152646728.png)]](https://i-blog.csdnimg.cn/blog_migrate/ac10aefe8ad1ab5bb876d2bf52a8d090.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lmgumudx-1662086874719)(D:\Typora\photo\image-20220829114940904.png)]](https://i-blog.csdnimg.cn/blog_migrate/31c89530329fe9941b6dc21d3968c12d.png)
四、docker常见文件的使用

本文介绍了Docker的数据持久化方法,重点讲解了数据卷的创建、查看、删除和挂载操作。此外,还详细阐述了Docker的四种网络模式——host、container、none和bridge模式,分析了其工作原理和应用场景。对于网络模式,特别强调了各模式的特性,如host模式的直接IP使用和网络性能,none模式的封闭安全性,以及bridge模式的默认网络配置和端口映射。

被折叠的 条评论
为什么被折叠?



