Docker数据卷管理及优化

一、基础概念

        1.docker数据卷是一个可供容器使用的特殊目录,它绕过了容器的文件系统,直接将数据存在宿主机上。

        2.docker数据卷的作用:

                数据持久化:即使容器被删除或重建数据卷中的数据仍然存在

                数据共享:多个容器可以同时挂载同一个数据卷实现数据的共享和交互

                独立于容器生命周期:数据卷的生命周期独立于容器,不受容器的启动、停止和删除的影响。

        3.使用数据卷的原因:

                docker分层文件系统:

                        性能差并且生命周期和容器相同

                docker提供两种卷:

                        bind mount

                        docker managed volume

        4.bind mount数据卷:

                将主机的目录文件或文件mount到容器里

                使用-v选项指定路径,如果-v指定的路径不存在挂载时会自动创建

                示例:

[root@docker ~]# docker run -it --rm \
-v /tmp/data1:/data1 \
-v /tmp/data1:/data2:ro \
-v /etc/passwd:/data/passwd:ro busybox
/ # tail -n 3 /data/passwd
lee:x:1000:1000:lee:/home/lee:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
nginx:x:1001:1001::/home/nginx:/sbin/nologin
/ # touch /data1/leefile1
/ # touch /data2/leefile1
touch: /data2/leefile1: Read-only file system

        5.docker managed数据卷:

                bind mount必须指定host文件系统路径限制了移植性

                docker managed volume不需要指定mount源,docker自动为容器创建数据卷目录

                默认创建的数据卷目录都在/var/lib/docker/volumes中

                如果挂载时指向容器内已有的目录,原有数据会被复制到volume中

                示例:

[root@docker volumes]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD='lee'
mysql:5.7
[root@docker volumes]# ls -l /var/lib/docker/volumes
总用量 0
drwx-----x 3 root root 19 8月 20 16:34
ad74662b8d6bb6fdcc6e82925ae9942b94bac5f9da4bd52b0a14ac451ae9ef75
[root@docker volumes]# touch
ad74662b8d6bb6fdcc6e82925ae9942b94bac5f9da4bd52b0a14ac451ae9ef75/_data/leefile
[root@docker volumes]# docker exec -it mysql bash
bash-4.2# cd /var/lib/mysql
bash-4.2# ls
auto.cnf client-cert.pem ib_logfile0 ibtmp1 mysql.sock
public_key.pem sys
ca-key.pem client-key.pem ib_logfile1 leefile performance_schema server-
cert.pem
ca.pem ib_buffer_pool ibdata1 mysql private_key.pem server-
key.pem
bash-4.2# pwd

                docker volume prune:清理未使用的docker数据卷

        建立数据卷:

                docker volume  create test,这条命令执行会在默认的数据卷目录下(/var/lib/docker/volumes/)创建test目录,并在该目录下创建_data目录

        查看数据卷:

                docker volume ls,执行这条命令会查看到上述创建的数据卷

        使用建立的数据卷:

                docker run -d --name web1 -p 80:80 -v test:/usr/share/nginx/html nginx

        6.数据卷容器:

                是docker中一种特殊的容器,主要方便的在多个容器之间共享数据卷。

                建立数据卷容器:

[root@docker ~]# docker run -d --name datavol \
-v /tmp/data1:/data1:rw \
-v /tmp/data2:/data2:ro \
-v /etc/resolv.conf:/etc/hosts busybox

                使用数据卷容器:

                        docker run -it --name test --rm --volumes-from datavol  busybox

        7.bind mount数据卷和docker managed数据卷对比:

                相同点:两者都是host文件系统中的某个路径

                不同点

        8.备份与迁移数据卷:

                建立容器并指定使用卷要备份的容器:

                docker run --volumes-from  datavol  -v `pwd`:/backup  busybox  tar zcf /backup/data1.tar.gz  /data1        将当前目录挂载到本地容器中用于和容器交互保存要备份的容器,备份数据到本地

                数据恢复:

docker run -it --name test -v leevol1:/data1 -v `pwd`:/backup busybox /bin/sh -
c "tar zxf /backup/data1.tar.gz;/bin/sh"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java:mysql切换达梦数据库(五分钟适配完成)

背景 因为项目需要国产数据库的支持,选择了达梦数据库,由于我们之前使用的是MySQL今天我们就来说一说,如何快速的切换到达梦数据库,原本这一章我打算写VIP章节的后续想想,就纯分享。毕竟是国产数据库迁移数据库 这里…

在游戏本(6G显存)上本地部署Deepseek,运行一个14B大语言模型,并使用API访问

在游戏本6G显存上本地部署Deepseek,运行一个14B大语言模型,并使用API访问 环境说明环境准备下载lmstudio运行lmstudio 下载模型从huggingface.co下载模型 配置模型加载模型测试模型API启动API服务代码测试 deepseek在大语言模型上的进步确实不错&#xf…

[leetcode]两数之和等于target

源代码 #include <iostream> #include <list> #include <iterator> // for std::prev using namespace std; int main() { int target 9; list<int> l{ 2, 3, 4, 6, 8 }; l.sort(); // 确保列表是排序的&#xff0c;因为双指针法要求输入是…

C# OpenCV机器视觉:学生注意力监测

小王是一位充满活力的年轻教师&#xff0c;刚接手了一个新班级。他满心欢喜地准备在课堂上大显身手&#xff0c;把自己的知识毫无保留地传授给学生。可没上几节课&#xff0c;他就发现了一个让人头疼的问题&#xff1a;课堂上总有那么几个学生注意力不集中&#xff0c;要么偷偷…

【嵌入式】C语言多文件编程与内联函数

文章目录 0 前言1 从C语言编译说起2 重复定义错误&#xff08;ODR violation&#xff09;和条件编译3 内联函数inline和static inline4 总结 0 前言 最近在研究ARM内核代码时&#xff0c;看到core_cm3.h中有大量的内联函数&#xff0c;为此查阅了很多资料&#xff0c;也和朋友讨…

10分钟本地部署Deepseek-R1

10分钟本地部署DeepSeek-R1 什么是DeepSeek-R1快速本地部署DeepSeek-R1Ollama下载Ollama安装检查是否安装成功 安装DeepSeek-R1模型模型使用测试 什么是DeepSeek-R1 DeepSeek-R1是中国的深度求索&#xff08;DeepSeek&#xff09;公司开发的智能助手。其具有极佳的语义理解和生…

Office / WPS 公式、Mathtype 公式输入花体字、空心字

注&#xff1a;引文主要看注意事项。 1、Office / WPS 公式中字体转换 花体字 字体选择 “Eulid Math One” 空心字 字体选择 “Eulid Math Two” 2、Mathtype 公式输入花体字、空心字 2.1 直接输入 花体字 在 mathtype 中直接输入 \mathcal{L} L \Large \mathcal{L} L…

【C++】STL——vector底层实现

目录 &#x1f495; 1.vector三个核心 &#x1f495;2.begin函数&#xff0c;end函数的实现&#xff08;简单略讲&#xff09; &#x1f495;3.size函数&#xff0c;capacity函数的实现 &#xff08;简单略讲&#xff09; &#x1f495;4.reserve函数实现 &#xff08;细节…

7、怎么定义一个简单的自动化测试框架?

定义一个简单的自动化测试框架可以从需求理解、框架设计、核心模块实现、测试用例编写和集成执行等方面入手&#xff0c;以下为你详细介绍&#xff1a; 1. 明确框架需求和范围 确定测试类型&#xff1a;明确框架要支持的测试类型&#xff0c;如单元测试、接口测试、UI 测试等…

AI取代人类?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

C语言-----数据结构从门到精通

1.数据结构基本概念 数据结构是计算机中存储、组织数据的方式&#xff0c;旨在提高数据的访问和操作效率。它是实现高效算法和程序设计的基石。 目标:通过思维导图了解数据结构的知识点,并掌握。 1.1逻辑结构 逻辑结构主要四种类型: 集合&#xff1a;结构中的数据元素之…

华为小米vivo向上,苹果荣耀OPPO向下

日前&#xff0c;Counterpoint发布的手机销量月度报告显示&#xff0c;中国智能手机销量在2024年第四季度同比下降3.2%&#xff0c;成为2024年唯一出现同比下滑的季度。而对于各大智能手机品牌来说&#xff0c;他们的市场份额和格局也在悄然发生变化。 华为逆势向上 在2024年第…

每日一博 - 三高系统架构设计:高性能、高并发、高可用性解析

文章目录 引言一、高性能篇1.1 高性能的核心意义1.2 影响系统性能的因素1.3 高性能优化方法论1.3.1 读优化&#xff1a;缓存与数据库的结合1.3.2 写优化&#xff1a;异步化处理 1.4 高性能优化实践1.4.1 本地缓存 vs 分布式缓存1.4.2 数据库优化 二、高并发篇2.1 高并发的核心意…

吴恩达深度学习——有效运作神经网络

内容来自https://www.bilibili.com/video/BV1FT4y1E74V&#xff0c;仅为本人学习所用。 文章目录 训练集、验证集、测试集偏差、方差正则化正则化参数为什么正则化可以减少过拟合Dropout正则化Inverted Dropout其他的正则化方法数据增广Early stopping 归一化梯度消失与梯度爆…

基于RK3588/RK3576+MCU STM32+AI的储能电站电池簇管理系统设计与实现

伴随近年来新型储能技术的高质量规模化发展&#xff0c;储能电站作为新能源领域的重要载体&#xff0c; 旨在配合逐步迈进智能电网时代&#xff0c;满足电力系统能源结构与分布的创新升级&#xff0c;给予相应规模 电池管理系统的设计与实现以新的挑战。同时&#xff0c;电子系…

K8s 分布式存储后端(K8s Distributed Storage Backend)

K8s 分布式存储后端 在 K8s 中实现分布式存储后端对于管理跨集群的持久数据、确保高可用性、可扩展性和可靠性至关重要。在 K8s 环境中&#xff0c;应用程序通常被容器化并跨多个节点部署。虽然 K8s 可以有效处理无状态应用程序&#xff0c;但有状态应用程序需要持久存储来维护…

FFmpeg:多媒体处理的瑞士军刀

FFmpeg&#xff1a;多媒体处理的瑞士军刀 前言 FFmpeg 是一个功能强大且跨平台的开源多媒体框架&#xff0c;广泛应用于音视频处理领域。 它由多个库和工具组成&#xff0c;能够处理各种音视频格式&#xff0c;涵盖编码、解码、转码、流处理等多种操作。 无论是专业视频编辑…

unordered_map/set的哈希封装

【C笔记】unordered_map/set的哈希封装 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】unordered_map/set的哈希封装前言一. 源码及框架分析二.迭代器三.operator[]四.使用哈希表封装unordered_map/set后言 前言 哈…

编程AI深度实战:大模型哪个好? Mistral vs Qwen vs Deepseek vs Llama

​​ 系列文章&#xff1a; 编程AI深度实战&#xff1a;私有模型deep seek r1&#xff0c;必会ollama-CSDN博客 编程AI深度实战&#xff1a;自己的AI&#xff0c;必会LangChain-CSDN博客 编程AI深度实战&#xff1a;给vim装上AI-CSDN博客 编程AI深度实战&#xff1a;火的编…

neo4j-community-5.26.0 install in window10

在住处电脑重新配置一下neo4j, 1.先至官方下载 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官网下载 Java Downloads | Oracle 中国 path: 4.查看java -version 版本 5.n…