Docker 数据卷

空扰寡人 提交于 2021-02-14 16:13:23

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 入门与实践》

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!