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数据卷介绍完成。