此篇为学习《深入浅出Docker》卷与持久化 章节笔记
卷 - volume ,对应的是主机的一个目录,可以将卷挂载到容器的目录。
- 卷可以被容器共享;
- 对卷内的数据修改,主机和容器立即生效;
-
创建卷 docker volume create [local] myvol //local表示使用内置的local驱动,可以省略。本地卷只能被所在的节点容器使用
docker volume ls //查看卷列表
docker volume inspect myvol //查看卷
[bigtotoro@bigtotoro ~]$ docker volume inspect myvol
[
{
"CreatedAt": "2021-12-25T22:08:03+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/myvol/_data",
"Name": "myvol",
"Options": {},
"Scope": "local"
}
]
Mountpoint 表示卷位于主机的具体目录。/var/lib/docker/volumes为local驱动默认目录。
-
删除卷 docker volume rm myvol
-
挂载卷
docker run -it -d --name voltainer --mount source=bizvol,target=/vol alpine:latest
解释:
--mount 表示将创建bizvol卷;
创建alpine:latest镜像所新创建的名为 voltainer 容器;
并将 bizvol 卷挂载到 voltainer 容器的/vol目录;
# 进入容器
docker exec -it voltainer sh
# 写入文件
echo "test" >> /vol/file1
# exit退出容器后查看主机文件
sudo cat /var/lib/docker/volumes/bizvol/_data/file1
# 删除容器,并查看 bizvol 卷是否存在
docker rm -f voltainer
docker volume ls
# 创建新容器,将已创建的 bizvol 卷挂载
docker run -it -d --name hellocat --mount source=bizvol,target=/vol alpine:latest
# 进入新容器,查看卷数据是否已经挂载
docker exec -it hellocat sh
ls /vol
|