Docker 数据管理实践
概述
容器中管理数据主要有两种方式
- 挂载主机目录(Bind mounts)-最常用(docker run -v宿主机目录,容器目录)
- 数据卷
数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间处理和共享和重用,默认会一直存在,即使容器被删除
数据卷操作
第一步:创建数据卷
docker volume create container-var
第二步:查看所有数据卷
docker volume ls
查看指定数据卷的信息
dicker volume inspect container-vol
查询的结果
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/container-vol/_data",
"Name": "container-vol",
"Options": {},
"Scope": "local"
}
]
第三步:启动挂载数据卷的容量
docker run -it --mount source=container-vol,target=/root centos:7 bash
或者采用如下的简写方法
docker run -it -v container-vol:/root cemtos:7 bash
-v contaoner-vol:/root把数据container-vol挂载到容器上的/root 目录
第四步:删除数据卷(如果数据卷被容器使用,则无法删除)
docker volume rm container-val
清理无主数据卷
docker volume prune
挂载主句目录
我们还可以在启动容器时,以目录直接挂载的方式进行数据操作
docler run -it -v /usr/app:/opt/app centos: 7 bash
- /usr/app为宿主机目录
- /opt/app为启动容器的目录
- -v用于指定挂载目标,如果本地目录不存在,Docker会自动为你按照挂载目录进行目录的创建
查看挂载目录信息
...
"Mounts": [
{
"Type": "bind",
"Source": "/usr/app",
"Destination": "/opt/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
...