1、基本概念
数据卷就是宿主机上的一个文件或目录
当容器目录和数据卷(宿主机)目录绑定,双方修改会立即同步操作
一个数据卷可以被多个容器同时挂载
数据卷作用:容器数据的持久化 外部机器和容器间接通信 容器之间数据交换
使用 -v命令。
2、数据卷添加的方式
容器内与宿主机实现数据的共享
数据卷--添加两种方式
- 直接命令形式添加 docker run -it -v 宿主机绝对路径目录:容器内目录 镜像文件名称
- Dockerfile方式添加
3、数据卷的使用细节
- 如果宿主机没有对应的目录,那么就会自动创建它
- 不论宿主机有没有目录和文件,容器内部的目录都会被覆盖
- 挂载成功后,如果修改挂载文件的内容,容器内的文件不会实时更新,需要重启容器。如果修改的是挂载目录下的文件,则会实时更新,所以推荐挂载目录
- 容器目录不可以为相对路径
- 如果只是-v指定一个目录,会挂载的是宿主机上的/var/lib/docker/volumes/test1/_data目录。这是随机生成的
- 挂载宿主机已存在目录后,在容器内对其进行操作,报“Permission denied”。
1> 关闭selinux。
临时关闭:# setenforce 0
永久关闭:修改/etc/sysconfig/selinux文件,将SELINUX的值设置为disabled。
2> 以特权方式启动容器
指定--privileged参数
如:# docker run -it --privileged -v /test:/soft centos /bin/bash