Docker volume 数据持久化保存


使用 -v 参数创建my_volume01并挂载到容器的/mydata目录下,卷都由docker管理

docker run -itd --name alpine_test03 -v my_volume01:/mydata alpine alpine /bin/sh   # /mydata:ro/rw

如果不指定my_volume01,则docker默认创建匿名volume在 /var/lib/docker/volume下,等同于Dockerfile的VOLUME参数效果

docker run -itd --name alpine_test09 -v /mydata alpine /bin/sh

 

使用 --mount 参数创建volume,volume由docker创建并管理

docker run -itd --name alpine_test10 --mount type=volume,source=my_volume02,target=/mydata2 alpine /bin/sh

将宿主上/home/dockerv01目录挂载到容器的/mydata3目录下,source源目录必须在宿主机已存在,使用绝对路径

docker run -itd --name alpine_test11 --mount type=bind,source=/home/dockerv01,target=/mydata3 alpine /bin/sh

 

通过volumes-from将另一个容器的挂载点复制到自身,实现数据持久化保存。alpine_test11容器无需启动

docker run -itd --name alpine_test12 --volumes-from alpine_test11 alpine /bin/sh

 mount bind可以挂单个文件,volume只能挂载目录

查看volume:

docker volume ls
docker inspect my_volume01
docker inspect container_name  #可查看挂载点

 

删除容器,所挂载的volume文件不会被删除,还可以被其他容器挂载
参考:https://blog.51cto.com/u_14154700/2463582

posted on 2021-09-21 17:43  momingliu11  阅读(215)  评论(0编辑  收藏  举报