docker数据管理之数据卷简介
docker数据管理之数据卷简介
数据卷是什么
就是将宿主机的某个目录与容器中的某个目录作映射对应关系
数据卷(Data Volumes):容器内数据直接映射到本地主机环境
数据卷特性
- 数据卷可以在容器之间共享和重用,本地与容器间传递数据更高效
- 对数据卷的修改会立马有效,在容器内部与本地目录均可对数据卷进行修改
- 对数据卷的更新,不会影响镜像,对数据与应用进行了解耦操作
- 卷会一直存在,直到没有容器使用
docker 数据卷命令详解
关于数据卷的管理我们从两个方面来说:
- 目录
- 普通文件
数据卷实践之目录
命令格式:
docker run -itd --name [容器名字] -v [宿主机目录]:[容器目录][镜像名称] [命令(可选)]
注:
- 宿主机目录需要绝对路径
- 我们可以使用命令 docker run 用来创建容器,可以在使用docker run 命令时添加 -v 参数,就可以创建并挂载一个
到多个数据卷到当前运行的容器中。- -v 参数的作用是将宿主机的一个目录作为容器的数据卷挂载到docker容器中,使宿主机和容器之间可以共享一个 目录,如果本地路径不存在,Docker也会自动创建。
演示:
#启动一个容器,挂载数据卷:
$ docker run -itd --name test1 -v /home/itcast/tmp/:/test1/ nginx
数据卷实践之文件
命令格式:
docker run -itd --name [容器名字] -v [宿主机文件]:[容器文件][镜像名称] [命令(可选)]
命令演示:
#启动一个容器,挂载数据卷
$ docker run -itd --name test2 -v /home/itcast/tmp/file1.txt:/nihao/nihao.sh nginx
注意
-
Docker挂载数据卷的默认读写权限(rw),用户可以通过ro设置为只读
格式:
[宿主机文件]:[容器文件]:ro
-
、如果直接挂载一个文件到容器,使用文件工具进行编辑,可能会造成文件的改变,从Docker1.1.0起,这会导致
报错误信息。所以推荐的方式是直接挂在文件所在的目录。