Docker数据卷
关于docker数据卷的理解,大概就是说,在某个容器内工作时,产生的数据或者文件之类的,当退出该容器时,这些数据和文件就会随之消失,这样的影响是,数据的使用范围被限制在容器内(这样也太没意思了),于是出来数据卷这个概念,直白理解就是在容器和宿主机之间的数据共享
以下记录学习过程中的笔记
添加数据卷的方式有两种,第一种是直接通过命令行挂载,第二种是通过dockerFile添加
记录的是通过命令行挂载:命令行如下
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
举个栗子:
docker run -it -v /myDataVolume:/dataVolumeContainer centos
上面这条命令的意思是,将主机根目录下的myDataVolume目录和容器根目录下的dataVolumeContainer这个目录联系起来,容器是指在运行完centos这个镜像后产生的容器。
-v 参数会自动创建相关的目录。
运行完上述的命令后,可以去到宿主机和容器内分别查看是否已经产生了相应的目录(无意外的话会有的)
那么,就可以在宿主机/myDataVolume 目录和容器的 /dataVolumeContainer目录间进行数据的共享操作了。
比如在/myDataVolume目录下新建一个txt并写入相关的内容,在容器的/dataVolumeContainer目录下也会看到有相关的文件,同理,在容器创建的文件也可以在宿主机内看到
这是因为此时默认的是容器对共享文件有读写的操作权限,可以通过 一下命令验证
docker inspect container_id(对应的容器id)
比如下:
当然,也可以限制容器内的操作权限为只读,命令如下:
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
ro是read only的缩写,这样一来就是,在容器内对共享的文件只能读,不能写,docker inspect container_id查看
PS:在主机删除共享的数据卷时使用了 rm -rf myDataVolume 来删除,但是,不成功,后来发现要先退出container对该共享数据卷的操作!