欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker 挂载Volume数据卷

程序员文章站 2022-05-11 13:26:31
...

Docker容器提供volume数据卷的方式,可以直接挂载宿主机文件或目录到容器里,可以理解为目录映射,这样就可以让所有的容器共享宿主机数据,从而只需要改变宿主机的数据源就能够影响到所有的容器数据,或者当容器意外删除的时候,宿主机的数据仍然有一份,便于容灾。

1、语法

  -v hostFile:containerFile
  • hostFile表示宿主机的目录或文件,需要提前存在的
  • containerFile表示容器的目录或文件,运行容器时会自动创建
  • 容器数据卷的权限默认是可读可写权限,如果需要设置权限,则使用命令 -v hostFile:containerFile:ro
  • 如果没有指定hostFile,即命令如果为 -v containerFile 则宿主机的默认目录为 /var/lib/docker/volumes/ 下,具体的映射关系可以使用命令查看 docker inspect [容器名称]|grep /var/lib/docker/volumes
  • 注意:目录只能挂载目录,文件只能挂载文件

2、挂载宿主机文件到容器文件上

  $ docker run -d --name my-nginx -v /usr/local/test.txt:/usr/local/test.txt nginx

3、挂载宿主机目录到容器目录上

  $ docker run -d --name my-nginx -v /usr/local/oas:/usr/local/oas nginx

4、挂载多个目录

  $ docker run -d --name my-nginx -v /usr/local/data1:/usr/local/data1 -v /usr/local/data2:/usr/local/data2 nginx

5、删除数据卷

Docker不存在垃圾回收机制,所以需要手动删除,避免过多占用空间。

#列出所有的数据卷
$ docker volume ls     
#过滤不在使用的数据卷
$ docker volume ls --filter dangling=true
#删除一个数据卷,容器正在使用的数据卷不能删除,绑定挂载的数据卷无法删除
$ docker volume rm [volume name]     

到此 Docker 挂载Volume数据卷介绍完成。

相关标签: Docker