• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > 详解Docker 数据卷管理

详解Docker 数据卷管理

作者:东邪西毒 字体:[增加 减小] 来源:互联网

本文主要包含Docker,数据卷管理,Docker,管理数据等服务器相关知识,东邪西毒 希望可以进行参考

Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)。数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。

数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,类似在系统中使用 mount 挂载一个文件系统。

本节中,我们需要依次完成下面几项任务:

1.创建数据卷
2.管理数据卷权限
3.挂载宿主机文件
4.使用数据卷容器共享数据
5.数据卷备份

一、创建数据卷

容器管理实验中我们学习的命令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源就能够影响到所有的容器。

如果我们想共享一个数据卷给多个容器怎么办,比如设想一个场景,我们有两个处理上传数据的应用运行在不同的容器中,但需要同时读取同一个文件夹下的文件,此时,最好的方式是使用数据卷容器。

四、数据卷容器

如果需要在多个容器间共享数据,并希望永久保存这些数据,最好的方式是使用数据卷容器,类似于一个提供网络文件共享服务的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

总结

1.创建数据卷
2.管理数据卷权限
3.挂载宿主机文件
4.使用数据卷容器共享数据
5.数据卷备份

请务必保证自己能够动手完成整个实验,只看文字很简单,真正操作的时候会遇到各种各样的问题,解决问题的过程才是收获的过程。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:

  • 浅谈docker学习之docker数据卷(volume)
  • 浅谈Docker 容器数据卷挂载小结
  • Docker中容器数据卷(Data Volume)和数据管理详解
  • Docker 数据卷权限实例详解
  • Docker 数据卷及数据容器详细介绍及示例
  • Docker 数据卷,数据卷容器详细介绍
  • docker 数据卷之进阶篇
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker实践8:Compose,docker实践compose
  • Docker buildx构建多平台镜像并推送到私有仓库的方法
  • Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)
  • 什么是Docker?为什么要使用Docker
  • docker 开源的应用容器引擎
  • 如何给docker设置http代理
  • docker官方mysql镜像自定义配置详解
  • 详解Docker数据管理(数据卷&数据卷容器)
  • 如何利用Docker容器实现代理转发与数据备份详解
  • 详解Docker Swarm 在持续集成测试中的应用

相关文章

  • Docker安装和基础用法 Docker入门教程第二篇
  • Docker 容器操作退出后进入解决办法
  • docker实现导出、导入和数据搬迁
  • VMware虚拟机安装Fedora 27 Workstation正式版(图文)
  • Centos7下搭建KVM虚拟机的方法
  • 详解Virtual Box配置CentOS7网络(图文教程)
  • XenServer使用ISO安装虚拟机系统的方法
  • VMware Tools(ubuntu系统)安装图文教程
  • Docker 网络模式(四种)详细介绍
  • Docker镜像保存为文件及从文件导入镜像的方法

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Fuel快速安装OpenStack图文教程
    • 详解Docker基于已有的镜像制新的镜像
    • 详解VMware 当中出现:无法将 Ethernet0 连接到虚拟网络"VMnet8"的问题
    • Docker 容器操作退出后进入解决办法
    • 在VMWare下LINUX中安装VMTool及共享文件夹
    • centos7 安装docker步骤详细介绍
    • CloudStack 环境如何重新部署详解
    • Docker 容器编排利器Compose(起步篇)
    • CloudStack 安装及使用过程中常见问题汇总
    • OpenStack 中的Nova组件详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有