这篇文章主要介绍了Docker数据卷如何管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker数据卷如何管理文章都会有所收获,下面我们一起来看看吧。
一、创建数据卷
容器管理实验中我们学习的命令docker run
用来创建容器,可以在使用改命令时添加-v
参数,就可以创建并挂载一个到多个数据卷到当前运行的容器中,-v
的作用是将宿主机的一个目录作为容器的数据卷挂载到容器中,使宿主机和容器之间可以共享一个目录,如果本地路径不存在,docker也会自动创建。
本节实验中,我们挂载2个数据卷到新创建的容器上:
# 创建两个目录 mkdir /tmp/data1 /tmp/data2 # 分别将两个目录挂载到新创建的容器上 docker run -t -i --name shiyanlou -v /tmp/data1:/data1 -v /tmp/data2:/data2 ubuntu /bin/bash
上述命令中-v
参数可以使用多次,并挂在多个数据卷到容器中。后面的参数信息中冒号前面是宿主机的本地目录,冒号后面是容器中的挂载目录。
使用docker inspect shiyanlou
查看shiyanlou容器中的数据卷信息:
#docker inspect shiyanlou
进入容器后我们可以查看和使用容器卷,尝试向这个容器卷中写入数据,然后在宿主机中查看是否存在:
可以看到容器中挂载的数据卷具备可写权限,那么如何对数据卷的权限进行管理呢?比如如何创建一个只读的数据卷呢?
二、数据卷权限
挂载的数据卷默认为可读写权限,除非外部文件系统做了特殊限制,在docker run
的时候也可以执行为只读
权限:
# 创建一个数据卷目录 mkdir /tmp/readonlydata # 以只读的方式挂载到shiyanlouro容器上 docker run -t -i --name shiyanlouro -v /tmp/readonlydata:/rodata:ro ubuntu /bin/bash
上面的命令中参数很简单,ro
表示readonly
,挂载后的数据卷就是只读权限了,这时候我们再次尝试向数据卷中写入:
除了可以挂载目录之外,文件也可以作为数据卷挂载到容器中。
三、挂载宿主机上的文件
在本实验中,我们想让所有的容器都可以共享宿主机的/etc/apt/sources.list
,从而只需要改变宿主机的apt源就能够影响到所有的容器。
复制代码 代码如下:
docker run -t -i --name shiyanloufile -v /etc/apt/sources.list:/etc/apt/sources.list:ro ubuntu /bin/bash
如果我们想共享一个数据卷给多个容器怎么办,比如设想一个场景,我们有两个处理上传数据的应用运行在不同的容器中,但需要同时读取同一个文件夹下的文件,此时,最好的方式是使用数据卷容器。
四、数据卷容器
如果需要在多个容器间共享数据,并希望永久保存这些数据,最好的方式是使用数据卷容器,类似于一个提供网络文件共享服务的nfs服务器。
数据卷容器创建方法跟普通容器一样,只需要指定宿主机的一个文件夹作为数据卷即可,使用docker create
命令创建但不启动数据卷容器:
docker create -v /shiyanloudata --name shiyanloudb ubuntu /bin/true
其他使用该数据卷容器的容器创建时候需要使用--volumes-from
参数,指定该容器名称或id:
docker run --volumes-from shiyanloudb ...
创建site1和site2两个容器挂载数据卷容器shiyanloudb:
可以连接到这两个容器中对数据卷进行操作,并查看彼此之间是否已经有了共享文件:
五、备份数据卷
继续使用实验四的环境,我们对数据卷容器中的数据进行备份,备份方法:
1.创建一个新的容器
2.挂载数据卷容器
3.挂载宿主机本地目录作为数据卷
4.将数据卷容器的内容备份到宿主机本地目录挂载的数据卷中
5.完成备份操作后容器销毁
请按照上述步骤对数据卷容器shiyanloudb中的数据进行备份:
# 创建备份目录 mkdir /tmp/backup # 创建备份容器 docker run --rm --volumes-from shiyanloudb -v /tmp/backup:/backup ubuntu tar cvf /backup/shiyanloudb.tar /shiyanloudata
关于“Docker数据卷如何管理”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Docker数据卷如何管理”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。