docker容器数据卷介绍、使用、数据容器卷volumes-from的使用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 命名的容器挂载数据卷,其他容器通过挂载这个父容器来实现数据共享,挂载数据卷的容器称为数据卷容器,以下二、三主要讲与宿主机挂载容器数据卷。四讲其他容器通过volumes-from来挂载父容器来实现数据共享。>通俗点容器数据卷是将docker中的容器(container)中产生的数据持久化到宿主机文件中并实现数据共享,其他容器可以通过数据卷来链接到这个容器,实现数据共享。
一、简介

命名的容器挂载数据卷,其他容器通过挂载这个父容器来实现数据共享,挂载数据卷的容器称为数据卷容器,以下二、三主要讲与宿主机挂载容器数据卷。四讲其他容器通过volumes-from来挂载父容器来实现数据共享。

通俗点容器数据卷是将docker中的容器(container)中产生的数据持久化到宿主机文件中并实现数据共享,其他容器可以通过数据卷来链接到这个容器,实现数据共享。
二、直接命令添加(使用-v命令添加)

添加大体有两种方式,首先要明白我们添加数据卷通常是在新建并启动容器时关联的,离不开上次说的操作容器的命令:https://blog.csdn.net/Chenftli/article/details/91412352

1.不带权限的命令(宿主机运行新建并启动容器),
docker run -it -v /宿主机目录绝对路径:/容器内目录 镜像名

绑定后容器和宿主机之间对应的目录数据共享,且容器具有修改、执行等权限,容器停止后,主机修改后的数据也会同步到容器中。

2.带权限命令(下面指定为只读权限):
docker run -it -v /宿主机目录绝对路径:/容器内目录:ro 镜像名

绑定后容器和宿主机之间对应的目录数据共享,但容器只具有只读权限,容器停止后,主机修改后的数据也会同步到容器中。

三、DockerFile添加
1.创建一个DockerFile文件,如果是一个项目的化可以在项目的顶级目录下创建这个文件,之后我们会通过这个DockerFile文件来build成我们所需要的镜像。

DockerFile中我们主要是通过VOLUME指令来给镜像添加一个或多个数据卷
例如:

FROM centos
VOLUME ["/dataVolume1", /dataVolume2]
CMD echo  "-------successful-----------"
CMD /bin/bash

上述中FROM是它依赖的镜像,这里依赖了centos。
VOLUME是挂载数据卷,/dataVolume1、/dataVolume2都是容器中需要实现数据共享的目录(挂载数据卷的目录)。
注意:宿主机共享的目录是自动生成的,因为无法判断人写的宿主机的目录是否具有。所以只有使用默认的目录。这个目录可以在构建容器实例后通过docker inspect 容器名称(或ID)来查看volumes参数。
CMD 是运行shell命令的,上面两条第一条相当于在控制台上输出-------successful-----------,第二条相当于打开容器的/bin/bash命令窗口。

2.然后build生成一个新的镜像

例如:
docker build -f /path/datafile -t mycentos .
上述命令中-f为强制执行,可以避免一些麻烦,/path/datafile为DataFile文件的路径, -t为容器分配一个伪终端,在上一篇文章有写。mycentos为新建镜像的名称。注意最后有 “.” 结尾。

3.run命令用新生成的镜像运行一个容器

例如:

docker run -it mycentos

上述中-it指令是以交互式模式运行并给一个伪终端,mycentos是刚才新建的镜像的名称。

4.通过这种方式生成的容器,可以看出容器和宿主机之间对应的目录数据共享,且容器具有修改、执行等权限,容器停止后,主机修改后的数据也会同步到容器中。
四、volumes-from实现父子容器数据共享
1.如下命令方式:
docker run -it --name con2 --volumes-from con1 mycentos

上述命令中,run运行一个新的容器con2,--name是给容器命名。--volumes-from是挂载数据卷,将con2容器的数据卷(这里con1容器的数据卷当然是通过二、三两种方法挂载的)挂载到con1中,实现父子容器共享。对于功能来说,下面是测试过的共享的:
父子容器对应的目录数据共享,各容器修改、添加数据等都是同步共享的。数据卷的生命周期一直持续到没有容器使用它为止。

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
目录
相关文章
|
30天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
222 77
|
12天前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
84 35
|
11天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
1天前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
24 10
|
4天前
|
存储 Ubuntu 关系型数据库
《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例
《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例
28 13
|
22小时前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
19 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
17天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
44 4
|
网络协议 Java Maven
docker将数据从宿主机挂载到容器的方式(二)
docker将数据从宿主机挂载到容器的方式(二)
509 0
docker将数据从宿主机挂载到容器的方式(二)
|
存储 Docker 容器
docker将数据从宿主机挂载到容器的方式(一)
docker将数据从宿主机挂载到容器的方式(一)
406 0
docker将数据从宿主机挂载到容器的方式(一)
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
下一篇
开通oss服务