在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷( 数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,类似在系统中使用 mount 挂载一个文件系统。 本节中,我们需要依次完成下面几项任务: 1.创建数据卷 一、创建数据卷 容器管理实验中我们学习的命令 本节实验中,我们挂载2个数据卷到新创建的容器上: # 创建两个目录 mkdir /tmp/data1 /tmp/data2 # 分别将两个目录挂载到新创建的容器上 docker run -t -i --name shiyanlou -v /tmp/data1:/data1 -v /tmp/data2:/data2 ubuntu /bin/bash 上述命令中 使用 #docker inspect shiyanlou 进入容器后我们可以查看和使用容器卷,尝试向这个容器卷中写入数据,然后在宿主机中查看是否存在: 可以看到容器中挂载的数据卷具备可写权限,那么如何对数据卷的权限进行管理呢?比如如何创建一个只读的数据卷呢? 二、数据卷权限 挂载的数据卷默认为可读写权限,除非外部文件系统做了特殊限制,在 # 创建一个数据卷目录 mkdir /tmp/readonlydata # 以只读的方式挂载到shiyanlouro容器上 docker run -t -i --name shiyanlouro -v /tmp/readonlydata:/rodata:ro ubuntu /bin/bash 上面的命令中参数很简单, 除了可以挂载目录之外,文件也可以作为数据卷挂载到容器中。 三、挂载宿主机上的文件 在本实验中,我们想让所有的容器都可以共享宿主机的 复制代码 代码如下: docker run -t -i --name shiyanloufile -v /etc/apt/sources.list:/etc/apt/sources.list:ro ubuntu /bin/bash
如果我们想共享一个数据卷给多个容器怎么办,比如设想一个场景,我们有两个处理上传数据的应用运行在不同的容器中,但需要同时读取同一个文件夹下的文件,此时,最好的方式是使用数据卷容器。 四、数据卷容器 如果需要在多个容器间共享数据,并希望永久保存这些数据,最好的方式是使用数据卷容器,类似于一个提供网络文件共享服务的NFS服务器。 数据卷容器创建方法跟普通容器一样,只需要指定宿主机的一个文件夹作为数据卷即可,使用 docker create -v /shiyanloudata --name shiyanloudb ubuntu /bin/true 其他使用该数据卷容器的容器创建时候需要使用 docker run --volumes-from shiyanloudb ... 创建site1和site2两个容器挂载数据卷容器shiyanloudb: 可以连接到这两个容器中对数据卷进行操作,并查看彼此之间是否已经有了共享文件: 五、备份数据卷 继续使用实验四的环境,我们对数据卷容器中的数据进行备份,备份方法: 1.创建一个新的容器 请按照上述步骤对数据卷容器shiyanloudb中的数据进行备份: # 创建备份目录 mkdir /tmp/backup # 创建备份容器 docker run --rm --volumes-from shiyanloudb -v /tmp/backup:/backup ubuntu tar cvf /backup/shiyanloudb.tar /shiyanloudata 总结 1.创建数据卷 请务必保证自己能够动手完成整个实验,只看文字很简单,真正操作的时候会遇到各种各样的问题,解决问题的过程才是收获的过程。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
请发表评论