Docker内部数据与容器互连,通过挂载的形式给docker一个外在的数据存储空间。
数据卷
- 数据卷可以在容器之间共享和重用
- 对 数据卷的修改会立马生效
- 对 数据卷的更新,不会影响镜像
- 默认一直存在,即使容器被删除
数据卷的使用类似于linux的mount
创建数据卷
terry@terry:~$ docker volume create my-vol
my-vol
查看数据卷
terry@terry:~$ docker volume ls
DRIVER VOLUME NAME
local jenkins_home
local my-vol
查看指定数据卷
terry@terry:~$ docker inspect jenkins_home
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data",
"Name": "jenkins_home",
"Options": {},
"Scope": "local"
}
]
启动一个挂载数据卷的容器
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
删除数据卷
terry@terry:~$ docker volume rm my-vol
my-vol
无主的数据卷清除
terry@terry:~$ docker volume prune
WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B
删除容器同时删除数据卷
docker rum -v
挂载主机目录为数据卷
docker run -d -P \
--name web \
# -v /src/webapp:/opt/webapp \
--mount type=build, source=/src/webapp,target=/opt/webapp \
training/webapp \ # image
python app.py # initial cmd
- 源必需是绝对路径
- 可以挂载单个文件
参考
《Docker 入门与实践》
来源:oschina
链接:https://my.oschina.net/u/2303535/blog/2222587