docker数据卷容器

docker数据卷容器

之前我们已经了解过了docker的数据卷,接下来我们在了解学习一下docker的数据卷容器,docker的数据卷容器
顾名思义就是使用docker容器来存储数据。

首先,docker的数据卷容器会降低I/O性能,如果可以的话,还是用本地数据卷存储数据比较方便。

首先我们先生成创建一个数据卷容器:

docker run -it -v /data --name data centos
可以看到系统的启动是秒及的,运行整个命令会自动进入容器,
此时就会在根目录下生成一个data的目录。
cd /
cd data
vim data.txt
并写入内容data。
然后保存退出。
docker run -it --volumes-from data --name data1 centos
docker run -it --volumes-from data --name data2 centos

此时我们会看到在data1和data2容器中都会自动生成一个data目录,而这个目录中的内容正是刚才生成的data容器
中的目录。
#二.docker数据卷容器的状态对挂载的影响

刚才我们测试的都是docker数据卷容器在运行状态,但是如果docker数据卷容器在关闭状态能不能挂载呢,我们测试
一下:
docker run -it --volumes-from data --name data6 centos

经常测试,我们发现docker数据卷容器在关闭状态下也是可以挂载的。
我们再创建个文件:
touch 1
可以看到不仅可以挂载,而且这个数据卷容器目录也是可以被更改的,也就是说即使数据卷容器被停止了,这个数据卷
容器仍然可以被使用。

#三.容器的级联挂载
此时因为我们的data1已经挂载上数据卷容器data了,我们再启动另外一个容器看看能不能改在data1.
docker run -it --volumes-from data1 --name data3 centos
此时发现data数据卷也被挂载上了,也就是说docker数据卷容器是可以级联挂载的。

#四.同时挂载多个数据卷容器
我们在创建一个数据卷容器,名字为data01,数据卷容器内的目录为/data01目录:
docker run -it -v /data01 --name data01 centos

然后再启动另外一个容器data4将这两个数据卷容器都重新挂载一下:
docker run -it --volumes-from data --volumes-from data01 --name data4 centos

此时可以看到这两个不同名的数据卷容器全部都挂载上了。

#五.同名数据卷容器挂载时的覆盖问题
假如我们再创建一个数据卷容器,名字为data02,数据卷容器内的目录也是/data目录:
docker run -it -v /data --name data02 centos
并在目录下创建一个data02.txt的文件:

此时再启动一个容器data5重新挂载一下:
docker run -it --volumes-from data --volumes-from data02 --name data5 centos

此时,可以看到只生成挂载了一个/data目录,而且这个目录是以后面挂载的这个数据卷容器为主。


#六.删除容器对数据卷容器的影响

当我们的容器使用完成并停止以后,为了避免容器仍然占用一定的系统资源,往往需要将整个容器删除,
但是我们还希望保留原来容器所运行的数据。
我们可以测试一下:
我们在data1容器中创建一个2文件,停止并删除容器data1。
此时在数据卷容器data中仍然可以看到2文件,也就是说数据卷容器可以持久化保存数据。

猜你喜欢

转载自www.cnblogs.com/fengjunhua/p/8984557.html