目录
一、什么是数据卷
二、数据卷的作用
三、如何挂载数据卷
1、创建nginx容器挂载数据卷
2、查看数据卷
3、查看数据卷详情
4、尝试在宿主机修改数据卷
5、查看容器内对应的数据卷目录
6、 访问nginx查看效果
一、什么是数据卷
挂载数据卷本质上就是实现容器内文件和宿主机文件的双向绑定。挂载数据卷可以使容器内的数据持久化保存在宿主机上,我们可以在容器内外对数据进行修改和访问,即使容器被删除,数据也不会丢失。这对于保存重要的数据或配置文件非常有用。
二、数据卷的作用
数据持久化:容器内的数据可以持久化保存在宿主机的指定目录中,即使容器被删除或重新创建,数据也不会丢失。
数据共享:宿主机上的一个目录可以被多个容器挂载,这使得这些容器可以共享相同的数据卷。
配置文件管理:配置文件、日志文件等可以通过挂载数据卷的方式管理,方便对容器的配置和日志进行管理和查看。
备份与恢复:可以通过备份数据卷的方式对容器中的数据进行备份,并在需要时将备份的数据卷恢复到容器中,实现数据的备份与恢复。
三、如何挂载数据卷
下面我们以nginx为例,创建nginx容器同时挂载数据卷
1、创建nginx容器挂载数据卷
把宿主机目录下html路径 和 容器内部目录/usr/share/nginx/html双向绑定,以实现数据卷的挂载。本地目录的默认前缀是/var/lib/docker/volumes
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
2、查看数据卷
[root@hadoop-001 html]# docker volume ls
DRIVER VOLUME NAME
local html
3、查看数据卷详情
[root@hadoop-001 html]# docker volume inspect html
[{"CreatedAt": "2024-04-30T16:16:08+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/html/_data","Name": "html","Options": null,"Scope": "local"}
]
可以看到数据卷对应宿主机的数据文件为/var/lib/docker/volumes/html/_data
"Mountpoint": "/var/lib/docker/volumes/html/_data",
4、尝试在宿主机修改数据卷
cd /var/lib/docker/volumes/html/_data
vim index.html
5、查看容器内对应的数据卷目录
进入容器命令行查看容器内对应的数据卷目录 发现容器内部的文件也发生修改
[roo[root@hadoop-001 _data]# docker exec -it nginx bash
root@ea9452fff829:/# cd /usr/share/nginx/html
root@ea9452fff829:/usr/share/nginx/html# ls
50x.html index.html
root@ea9452fff829:/usr/share/nginx/html# cat index.html
<!DOCTYPE html>
<html>
<head>
<title>HAHAHAHA</title>
...