IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker核心之数据卷 -> 正文阅读

[系统运维]docker核心之数据卷

什么是数据卷映射

docker可以将宿主机上的目录映射到容器中,映射到容器内部的目录自动与宿主机的目录实现同步;即外部目录里面的作出改动,容器内部的目录也随之改动,保持同步,当然如果内部有改动,外部目录也会随之改动

为什么要做数据卷映射

众所周知docker每一个容器都是采用沙盒机制,每个容器里面都有单独完整的文件资源,这样做的好处是多个同样的镜像所运行的容器,同时运行互不影响,但是缺点也很明显,当容器被删除时,容器内的数据也会一并被删除,无法持久化(例如mysql,我们需要在mysql销毁时,保留其中的数据库),那么需要容器内的数据持久化,就需要进入容器,将需要被持久化的数据转移出到宿主上,但是手动转移太麻烦,而且容易出错,这个时候我们就需要数据卷映射

数据卷映射在容器运行时的作用

  • 配置映射:我们在运行容器时,往往想容器安装我们特定的配置运行,这个时候,我们就可以通过数据映射将我们的配置文件映射到容器内部实现
  • 数据持久化:容器被销毁时,外部宿主机的映射目录依旧会保存着,从而实现容器数据持久化

数据卷映射实现

一般是在运行容器,通过docker run -v来实现数据卷映射

特别注意:在运行时,是将宿主机的目录或文件映射到容器内,如果容器内有同名的目录或文件,会被覆盖,如果宿主机是空目录,而容器内同名目录内有文件,会被覆盖为空目录,以宿主目录为准(所以一般在做配置映射时,先将写好的配置文件放到指定目录,再映射)

# source_path:外部宿主机目录/文件路径
# dest_path:内部被映射目录/文件路径
# ro:read-only,容器对于映射目录只有读取权限,而无修改权限
# rw:read-write,容器对于映射目录具有读写权限(默认)
docker run -v source_path:dest_path[:ro|rw] container

-v命令,可以多次使用,以实现同一个容器内,有多个映射目录

有几点需要注意:

  • host机器的目录路径必须为全路径(准确的说需要以/或~/开始的路径),不然docker会将其当做volume而不是volume处理
  • 如果host机器上的目录不存在,docker会自动创建该目录
  • 如果container中的目录不存在,docker会自动创建该目录
  • 如果container中的目录已经有内容,那么docker会使用host上的目录将其覆盖掉

具名映射和匿名映射

具名映射

  • 我们可以给被映射目录设置卷名,方便管理,使用
  • 所有具名映射在宿主上的路径都是在/var/lib/docker/volumes/{卷名称}/_data
docker run -v 卷名:/映射目录 container

在这里插入图片描述
在这里插入图片描述

匿名映射

  • 匿名映射,我们只需要设置需要映射目录
# 这个映射目录,指定是container容器中被映射的目录,而不是宿主机上的目录
docker run -v /映射目录 container

我们通过inspect指令,根据容器ID查询到容器映射信息,映射信息里面就有卷ID
所有匿名映射在宿主上的路径都是在/var/lib/docker/volumes/{卷名称}/_data
在这里插入图片描述

指定映射目录

  • 用户设置指定外部目录
# 指定目录映射
docker run -v 外部目录/映射目录 container

在这里插入图片描述

docker volume命令

命令作用
docker volume create [卷名]根据卷名,创建一个卷
docker volume inspect [卷名]根据卷名,查看卷的详细信息
docker volume ls列出已有的所有的卷
docker volume rm [卷名[ 卷名]]根据一个或多个卷名,删除指定的卷
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:42:51  更:2021-07-16 11:45:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 1:00:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码