1、前言
容器适用无状态的应用,容器运行时的数据分为两部分:镜像层和容器层。镜像层的数据是永久存储的,而容器的数据随着容器的停止也就消失。
对于有状态的应用来说,没有持久化的数据不能支撑应用的正常运行,常用两种方式为有状态的应用提供持久化的数据存储:
01、Volumes
02、bind mount
备注:应用的状态就是应用组件完成他们的工作(即执行任务)时所需数据。
2、Volume
卷存储在由Docker管理的主机文件系统的一部分中(Linux上的/var/lib/docker/volumes/)。非Docker进程不应该修改这部分文件系统。卷是在Docker中保留数据的最佳方式。
volume的使用场景:
01.在多个容器之间共享数据
02.对主机的目录结构不清楚的
03.当您想要将容器的数据存储在远程主机或云提供商上而不是本地时
04.当您需要备份,还原或将数据从一台Docker主机迁移到另一台时,卷是更好的选择。您可以使用卷停止容器,然后备份卷的目录(例如/var/lib/docker/volumes/
3、创建volume
[[email protected] ~]# docker volume create jixinjian
jixinjian
[[email protected] ~]#
4、查看volume
[[email protected] ~]# docker volume ls
DRIVER VOLUME NAME
local jixinjian
[[email protected] ~]# docker volume inspect jixinjian
[
{
"CreatedAt": "2022-10-22T12:17:03+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/jixinjian/_data",
"Name": "jixinjian",
"Options": {},
"Scope": "local"
}
]
5、删除volume
[[email protected] ~]# docker volume rm jixinjian
jixinjian
[[email protected] ~]# docker volume ls
DRIVER VOLUME NAME
6、使用volume、验证效果
[[email protected] ~]# docker volume ls
DRIVER VOLUME NAME
local jixinjian
[email protected] ~]# docker run -d -it --name Volume_test -v jixinjian:/tmp centos
9a39034fd2a8d82011f20f8161c712d1ecd01d72cca240f38e42ae7f8f5e13ab
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a39034fd2a8 centos "/bin/bash" 3 seconds ago Up 2 seconds Volume_test
[[email protected] ~]# docker exec -it 9a39034fd2a8 /bin/bash
[root@9a39034fd2a8 /]# echo "volume" >/tmp/volume.txt
[root@9a39034fd2a8 /]# exit
exit
[[email protected] ~]# docker stop 9a39034fd2a8 #停止容器
9a39034fd2a8
[[email protected] ~]# docker start 9a39034fd2a8 #再启动容器
9a39034fd2a8
[[email protected] ~]# docker exec -it 9a39034fd2a8 /bin/bash
[root@9a39034fd2a8 /]# ls -l /tmp/ #可以看到数据还存在
total 20
-rw-r--r-- 1 root root 7 Oct 22 04:37 Volume_test
-rwx------ 1 root root 701 Sep 15 2021 ks-script-4luisyla
-rwx------ 1 root root 671 Sep 15 2021 ks-script-o23i7rc2
-rwx------ 1 root root 291 Sep 15 2021 ks-script-x6ei4wuu
-rw-r--r-- 1 root root 7 Oct 22 04:34 volume.txt
标签:10.0,存储,持久,jixinjian,0.119,volume,docker,root
From: https://www.cnblogs.com/w1sh/p/16815893.html