【docker】数据管理

Docker容器会随时关闭和开启,Docker 容器的数据放哪里呢?

答案就是:数据卷和数据卷容器

官网文档

Manage data in Docker | Docker Docs

数据卷(Data Volume)

数据卷就是将宿主机的某个目录,映射到容器中,作为数据存储的目录,我们就可以在宿主机对数据进行存储。

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:数据卷可以在容器之间共享和重用对数据卷的修改会立马生效对数据卷的更新,不会影响镜像卷会一直存在,直到没有容器使用。

数据卷特性:

  1. 数据卷可以在容器之间共享和重用
  2. 对数据卷的修改会立马生效
  3. 对数据卷的更新,不会影响镜像
  4. 卷会一直存在,直到没有容器使用

数据卷命令列表

docker run --help | grep volume
  •  -v, --volume list                    Bind mount a volume
  •   --volume-driver string           Optional volume driver for the container
  •  --volumes-from list              Mount volumes from the specified container(s)

建一个数据卷

# docker run -d --name [容器名字] -v [宿主机文件]:[容器文件] [镜像名称]


docker run --name nginx-demo5 -v /test1/docker_volume -p 8086:80 -d chengxuyuanshitang/nginx:v3

看下容器内部是否生成 /test1/docker_volume目录

挂载一个主机目录作为数据卷

 -v   /test1/docker_volume:/opt/nginx_volume

本地目录的路径必须是绝对路径,如果目录不存在 Docker 会自动为你创建它。


docker run --name nginx-demo5 -v /test1/docker_volume:/opt/nginx_volume -p 8086:80 -d chengxuyuanshitang/nginx:v3
删除掉刚才启动的容器 nginx-demo5
docker rm -f nginx-demo5

启动容器、进入容器内部
docker run --name nginx-demo5 -v /test1/docker_volume:/opt/nginx_volume -p 8086:80 -d chengxuyuanshitang/nginx:v3

docker exec -it nginx-demo5 /bin/bash

cd opt/nginx_volume/

ls -a

在宿主机/test1/docker_volume目录创建 testFile.text。

cd /test1/docker_volume/

touch testFile.text

ll

再次查看容器目录

容器目录也有一个 testFile.text。

删除容器,查看宿主机的数据是否被删除

docker rm -f nginx-demo5

ls /test1/docker_volume/

数据卷容器

将宿主机的某个目录,使用容器的方式来表示,然后其他的应用容器将数据保存在这个容器中,达到大批量应用数据同时存储的目的。

数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。

 创建数据卷容器

docker create -v  /test1/docker_volume:/test1/docker_volume --name nginx-test-volume  chengxuyuanshitang/nginx:v3

挂载数据卷

查看容器
docker ps -a

挂在容器
docker run --volumes-from  nginx-test-volume -d -p 8086:80 --rm --name nginx-demo6 chengxuyuanshitang/nginx:v3


在宿主机中修改 testFile.text
echo "docker-volume-test">testFile.text

cat testFile.text 

进入容器内部、查看文件
docker exec -it nginx-demo6 /bin/bash

 ls test1/docker_volume/

 cat test1/docker_volume/testFile.text 

使用 --volumes-from 参数所挂载数据卷的容器自己并不需要保持在运行状态

如果删除了挂载的容器(nginx-test-volume),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。 这可以让用户在容器之间升级和移动数据卷

数据备份

# docker run --rm --volumes-from [数据卷容器id/name] -v [宿主机目录]:[容器目录] [镜像名称] [备份命令]

docker run --rm --volumes-from nginx-test-volume -v /test1/docker_volume:/test1/docker_volume chengxuyuanshitang/nginx:v3 tar zcf /test1/docker_volume/docker_volume.tar.gz /test1/docker_volume

删除容器卷( nginx-test-volume)的数据

docker exec -it nginx-demo6 /bin/bash

ls /test1/docker_volume/

cd /test1/docker_volume/

rm -rf testFile.text 

恢复数据

# docker run --rm  --volumes-from [数据卷容器id/name] -v [宿主机目录]:[容器目录][镜像名称] [还原备份命令]

docker run --rm --volumes-from nginx-test-volume -v /test1/docker_volume:/test1/docker_volume chengxuyuanshitang/nginx:v3 tar xf /test1/docker_volume/docker_volume.tar.gz -C /


进入容器、查看数据
docker exec -it nginx-demo6 /bin/bash

cd /test1/docker_volume/

ls -a




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/258250.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

21 3GPP中 5G NR高速列车通信标准化

文章目录 信道模型实验——物理层设计相关元素μ(与子载波间隔有关)设计参考信号(DMRS) 本文提出初始接入、移动性管理、线性小区设计等高层技术。描述3GPP采用HST场景的评估参数,阐释了HST应用的物理层技术,包括数字通信和参考信号设计,链路…

基于PHP的蛋糕购物商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的蛋糕购物商城系统 一 介绍 此蛋糕购物商城基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销…

【大数据存储与处理】实验四 MongoDB 文档操作

实验四 MongoDB 文档操作 【实验目的】: 1. 掌握 MongoDB CRUD 基本操作; 2. 掌握 MongoDB 插入文档 3. 掌握 MongoDB 更新文档 4. 掌握 MongoDB 删除文档 5. 掌握 MongoDB 删除集合。 【实验内容与要求】: MongoDB 是一个介于关系数…

深入理解PyTorch中的Hook机制:特征可视化的重要工具与实践

文章目录 一、前言1. 特征可视化的重要性2. PyTorch中的hook机制简介 二、Hook函数概述1. Tensor级别的hook:register_hook()2. Module级别的hook 三、register_forward_hook()详解1. 功能与使用场景2. 示例代码与解释3. 在特征可视化中的具体应用 四、register_bac…

HarmonyOS播放视频及音乐

效果如下 代码 Entry Component struct PageVideo {State videoSrc: Resource $rawfile(AndroidVideo.mp4)State previewUri: Resource $rawfile(6_20231218171028A068.jpg)State curRate: PlaybackSpeed PlaybackSpeed.Speed_Forward_1_00_XState isAutoPlay: boolean fal…

js按顺序循环接口返回数据,组合成新数据

有时候我们需要根据一个参数,通过接口返回的数据进行一一对应。形成请求参数又有对应的返回结果的新数据。 新数据格式1:一个对象包含请求参数和返回值 现在vue项目里有个字典接口,该页面很多地方要调用字典接口,需要写个循环将…

IIOT与IOT:什么是工业物联网?为什么需要工业物联网?

工业物联网也被称作工业4.0或工业互联网,是物联网的一个子集,其通过通信技术连接的众多工业设备组成的网络,使系统能够以前所未有的方式监控、收集、交换、分析和提供有价值的新见解,以帮助工业企业做出更智能、更快速的业务决策。…

告诉你playwright 不使用with sync_playwright() as编写脚本的新方法

大家都知道playwright代码的标准写法是: with sync_playwright() as p:browser p.chromium.launch(channel"chrome", headlessFalse)page browser.new_page()page.goto("http://www.baidu.com")print(page.title())browser.close() with sy…

解决ESP8266无法退出透传问题以及获取网络时间以及天气方法

网上很多配置ESP8266的教程,但是遇到无法退出透传模式的情况却没有找得到答案,不知道是大家都没遇到还是怎么样,以下是我的解决方法:实测有效 先发送“”(三个加号)(如果是在串口调试助手调试&…

硕迪填报如何自动生成UUID并存入数据库

硕迪填报如何自动生成UUID并存入数据库 需求:1、在不修改jsp页面的情况下,如何生成一个UUID并存入数据库? 2、修改数据时,根据UUID去更新数据。 现在我总结一个更简洁的方法,具体操作步骤如下: 1、填报表…

SpringBoot知识点回顾01

Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。 Spring是如何简化Java开发的 为了降低Java开发的复杂性,Spring采用了以下4种关键策略: 1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean; 2、通…

WebGL开发虚拟旅游应用

WebGL可以用于开发虚拟旅游应用,提供用户在浏览器中探索虚拟景点和环境的交互体验。以下是在WebGL中开发虚拟旅游应用的一般流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.需求分析…

Sqoop入门:如何下载、配置和使用

下载和配置 Sqoop是Apache的一个开源工具,主要用于在Hadoop和关系数据库之间传输数据。以下是一些关于如何下载和配置Sqoop的步骤: 下载Sqoop:你可以从Apache的官方网站下载Sqoop。大多数企业使用的Sqoop版本是Sqoop1,例如sqoop-…

flink 读取 apache paimon表,查看source的延迟时间 消费堆积情况

paimon source查看消费的数据延迟了多久 如果没有延迟 则显示0 官方文档 Metrics | Apache Paimon

杰发科技AC7840——SPM电源管理之低功耗模式

0、SPM简介 很早以前就听过低功耗模式,一直没有怎么深入了解,最近遇到几个项目都是跟低功耗有关。正好AutoChips的芯片都有电源管理的功能,在此借用AC7840的SPM对低功耗进行测试。 1、AC7840的5种功耗模式 2、AC7840的模式转换 3、唤醒 在…

Nacos-服务发现与配置管理v1.0

Nacos - 服务发现和配置管理 教学目标 1)能够理解微服务架构的特点 2)能够理解服务发现的流程 3)能够说出Nacos的功能 4)掌握Nacos的安装方法 5)掌握RESTful服务发现开发方法 6)掌握Dubbo服务发现开…

LeetCode 583两个字符串的删除操作 72编辑距离 | 代码随想录25期训练营day56

动态规划算法13 LeetCode 583 两个字符串的删除操作 2023.12.19 题目链接代码随想录讲解[链接] int minDistance(string word1, string word2) {//思路1,求除了最长公共序列外,两个字符串需删除的字符数//以下为求最长公共序列长度的动态规划方法/*v…

让AIGC成为你的智能外脑,助力你的工作和生活

人工智能成为智能外脑 在当前的科技浪潮中,人工智能技术正在以前所未有的速度改变着我们的生活和工作方式。其中,AIGC技术以其强大的潜力和广泛的应用前景,正在引领着这场革命。 AIGC技术是一种基于人工智能的生成式技术,它可以通…

Arcgis导出为tiff

原有一幅影像,在进行一些操作之后,需要导出为tiff 比如我对他进行一个重采样,48m分辨率变为96m 在重采样后的数据图层上右键,导出数据 为什么有时会导出为.gdb格式的呢? 可能是位置处在一个文件地理数据库.gdb下

vue + element 项目表格多选根据状态来禁用

首先如图效果 对elementUI中table表格的多选框进行 可勾选 和 不可勾选 的处理 给 type 属性为 selection 的加一个事件:selectableselected’ <el-table-column type"selection" width"55" :selectable"selected"> </el-table-colum…