docker容器持久化

news2025/8/12 4:05:51

第六章容器持久化

容器数据卷

什么是容器数据卷?

容器之间可以有一个数据共享技术!docker容器中产生的数据,同步到本地!

这就是卷技术!目录的挂载,将我们容器内的目录,挂在到linux上面!

总结:容器的持久化和同步操作!容器间也是可以数据共享的!

使用数据卷

挂载方式一

直接使用命令来挂载 -v

docker run -it -v 主机目录,容器内目录

#测试

docker run -it -v /home/ceshiL:/home centos /bin/bash

#启动时我们可以通过docker inspect 容器id    #查看容器信息和挂载目录

数据卷可以实现双向绑定

注意:如果容器停止,宿主机将同步目录里的文件进行修改,仍然可以同步数据。

好处:挂载后,我们以后修改只需要在本地修改即可,容器内自动同步。

实战:安装MySQL

思考:MySQL的数据持久化的问题!

#获取镜像

[root@localhost ~]# docker pull mysql:5.7

#运行容器:需要做数据挂载!    #安装启动MySQL,需要配置密码,这是要注意的!

#官方测试:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

#

#启动我们的

-d    后台运行

-p    端口映射

-v    卷挂载

-e    环境配置

--name    容器名

[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

#启动容器之后我们在本地使用Navicat连接测试一下

#Navicat-连接到服务器的3310 --- 3310 和容器内的3306映射,这个时候我们就可以连了!

#在本地测试创建一个数据库,查看一下我们映射的路径是否OK!

假设我们将容器删除,发现,我们挂载到本地的数据卷依旧没有丢失,这就实现了容器持久化功能。

具名和匿名挂载

匿名挂载

-v    容器内路径!

docker run -d -P --name nginx01 -v /etc/nginx nginx

#查看所有的volume(卷)的情况

[root@localhost ~]# docker volume ls

DRIVER    VOLUME NAME

local     8ba0aef11bef65f036cec4b3b47ca080a27d2964e0e5858f53852604b4fb3f5a

#这里发现,这种就是匿名挂载,我们在 -v 只写了容器内的路径,没有写容器外的路径!

[root@localhost home]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx

8f8a4faec44873d41ae545726db7c2ea681313ba8c4442d9c575d936e9b593fd

[root@localhost home]# docker volume ls

DRIVER    VOLUME NAME

local     juming-nginx

#通过 -v 卷名:容器内路径

#查看一下这个卷

所有的docker容器内的卷,没有指定目录的情况下都是 /var/lib/docker/volumes/xxxx/_data

我们通过具名挂载可以方便的找到我们的一个卷,大多数情况下在使用   

具名挂载

#如何 确定是具名挂载还是匿名挂载,还是指定路径挂载!

-v 容器内路径    #匿名挂载

-v 卷名:容器内路径    #具名挂载

-v /宿主机路径::容器内路径    #指定路径挂载!    

拓展

#通过 -v 容器内路径:ro rw 改变读写权限

ro    readonly    #只读

rw    readwrite    #可读可写

#一旦这个设置了容器权限,容器对我们挂载出来的内容就有限定了

[root@localhost _data]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx

[root@localhost _data]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

#ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作!

查看卷挂载好的容器

结论:这个卷和外部一定有同步的目录!而且是匿名挂载

查看一下卷挂载的路径

测试一下刚才的文件是否同步出去了

这种方式我们未来使用的十分多,因为我们通常会构建自己的镜像!

假设构建镜像时没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径

数据卷容器

多个MySQL同步数据    

--volumes-from

多个MySQL实现数据共享

(使用--volumes-from连接父容器)

[root@localhost ~]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

[root@localhost ~]# docker run -d -p 3310:3306  -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7

#这个时候,实现两个容器数据同步。

结论:

容器之间配置的信息传递,数据卷容器的生命周期会直持续到没有容器使用为止。

但是一旦你持久化到了本地,这个时候,本地的数据是不会删除的。

从宿主机拷贝文件到容器

docker cp 宿主机文件路径 容器名(使用docker ps查看NAMES就是容器名了):要拷贝到的容器路径

docker cp /etc/yum.repos.d/CentOS-Base.repo dazzling_cori:/etc/yum.repos.d

从容器里面拷文件到宿主机

docker cp 容器名: 要从容器里面拷贝的文件路径 拷到宿主机的/etc/yum.repos.d径下面

docker cp dazzling_cori: /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d

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

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

相关文章

线性时间选择(Top K)问题(Java)

线性时间选择(Top K)问题(Java) 文章目录线性时间选择(Top K)问题(Java)1、前置介绍2、分治法求解3、代码实现4、复杂度分析5、扩展6、参考资料1、前置介绍 定义 选择问题&#xff0…

docker可视化与制作和提交自己的镜像

第四章docker可视化 portainer docker的图形化管理工具!提供一个后台面板供我们操作! docker run -d -p 8080:9000 \--restartalways -v /var/run/docker.sock:/var/run/docker.sock --privilegedtrue portainer/portainer 访问测试:外网…

Python_数据容器_元组tuple

一、元组tuple定义 为什么需要元组 列表是可以修改的,如果想要传递的信息不被篡改,列表就不适合了 元组和列表一样,都是可以封装多个不同类型的元素在内 最大的不同点在于: 元祖一旦定义完成,就不可修改 所以&am…

SpringBoot中使用JDBC

JDBC基础使用&#xff1a; JDBC基础使用_做测试的喵酱的博客-CSDN博客 一、SpringBoot使用JDBC&#xff0c;依赖 依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId&…

linux zookeeper kafka_2.12-2.2.0 集群

文章目录一、zookeeper服务搭建1. 下载2. 解压3. 创建目录4. 调整配置5. 配置myid6. 开放防火墙7.启动验证zk二、kafka集群搭建2.1. 下载软件2.2. 解压2.3. 配置2.5. 启动kafka三、测试验证3.1. 创建一个主题3.2. 发送消息3.3. 消费消息预先准备&#xff1a;上传软件至服务器19…

使用Avalonia跨Linux平台

Avalonia&#xff0c;读&#xff1a;阿瓦隆尼亚 这里的跨平台指的是&#xff0c;使用c#语言开发跨Linux平台。c#在Windows桌面开发中很强&#xff0c;但是在Linux桌面中&#xff0c;不能跨平台&#xff0c;Qt可以在Linux中跨平台&#xff0c;但是那是另外一门语言了。Avalonia…

计算机组成原理4小时速成:计算机运算方法,无符号数和有符号数,定点数和浮点数,移位运算,加减运算,乘法运算,原码,反码,补码

计算机组成原理4小时速成&#xff1a;计算机运算方法&#xff0c;无符号数和有符号数&#xff0c;定点数和浮点数&#xff0c;移位运算&#xff0c;加减运算&#xff0c;乘法运算&#xff0c;原码&#xff0c;反码&#xff0c;补码 2022找工作是学历、能力和运气的超强结合体&…

[激光原理与应用-16]:《激光原理与技术》-2- 光的本质(粒子、波动说、电磁波、量子)

目录 前言&#xff1a;“光” 一、光的微粒说 - 牛顿 二、光的波动说 - 托马斯杨 惠更斯 三、光是电磁波 - 麦克斯韦 四、光的波动说受到的挑战&#xff0c;光的波动说重新唤醒 五、光量子假说 - 爱因斯坦 六、光的理论综合 七、光的重要特性 7.1 光的相干性 7.2 相…

安装ideaIU-2022.1.4报错问题解决办法

原来版本是2020 现在因为要用到JDK17 而IDEA2020支持的JDK只能到14 所以我们现在在下载一个2022 .1.4 这时我们安装好后 会发现如下错误 原因分析&#xff1a; JetBrains 会将各个产品的这些文件也放到这个目录中&#xff0c;而新版本的 IntelliJ IDEA 在安装时遭遇了旧版本…

Web(二)html5基础-文本控制类标签(知识训练和编程训练)

web知识训练_html5_文本控制类标签 第1关_web知识训练_html5_文本控制类标签 -------------------------------------------- web编程训练_html5_文本控制类标签 第1关_html5_网页背景及标题段落标签 编程要求 根据前面的效果图&#xff0c;在右侧编辑器中的Begin - End区域…

10K涨到30K,5年大厂横跳,经验全在这两份Java面试精华总结里了

为了帮助大家跳槽成功多长点薪资&#xff0c;我这边给大家准备了两份面试资料。这两份资料可大有来头&#xff0c;已经帮助五位我认识的人进入大厂。所以说含金量还是很高的。 这两份资料可以让你体验到原有知识从破碎到重建&#xff0c;豁然开朗的过程。5年大厂横跳真实案例加…

数据库事务

1 概述 数据库的事务&#xff08;Transaction&#xff09;是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令。 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么同时成功&#xff0c;要么同时失败。 事务是一个不可…

前端开发——HTML5新增的客户端校验

1.使用校验属性执行校验 HTML5新增了表单的校验属性,如required、pattern等。 required:定义表单不能为空。属性值是required或者省略.pattern:定义表单满足正则表单式1.required属性 required属性用于不能为空。属性值是required或者省略. 代码如下&#xff1a; <form …

34 - 数组操作符的重载

---- 整理自狄泰软件唐佐林老师课程 1. 问题一 string类对象具备C方式字符串的灵活性吗&#xff1f;还能直接访问单个字符吗&#xff1f; 1.1 字符串类的兼容性 string类最大限度的考虑了C字符串的兼容性可以按照使用C字符串的方式使用string对象 1.2 编程实验&#xff1a…

BUUCTF Reverse/[GWCTF 2019]re3

main函数代码&#xff0c;这里改写了内存空间的属性&#xff0c;还是自解密 void __fastcall __noreturn main(int a1, char **a2, char **a3) {int i; // [rsp8h] [rbp-48h]char s[40]; // [rsp20h] [rbp-30h] BYREFunsigned __int64 v5; // [rsp48h] [rbp-8h]v5 __readfsqwo…

在Thymeleaf中格式化日期

1. 简介 在本文中&#xff0c;我们将介绍在百里香叶模板中格式化日期的方法。我们将使用 Thymeleaf 引擎中提供的特殊#calendars实用程序&#xff0c;该实用程序是为模板上的日期操作而创建的。 2. 使用实用程序类#calendar Thymeleaf带有一个名为#calendars的特殊实用程序类…

万字长文:从实践到原理说透Golang defer

本从以go-1.16版本源码为基础&#xff0c;介绍了defer关键字的使用规则、实现原理和优化路线&#xff0c;最后介绍了几种将近的使用场景。试图对 go defer 关键字应用到实现原理有一个全面的了解。 欢迎关注公众号闲余说 defer 概述 Go 提供关键字defer 处理延迟调用问题。在语…

超详细BootLoader原理分析

【摘要】本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― BootLoader 的概念、软件设计的主要任务以及结构框架等内容。 在拿到空PCB板之后&#xff0c;硬件工程师首先会测试各主要线路是否通连&#xff08;各焊点是否有空焊、断接或短路的情况&#xff09;&#xff…

黑群辉+腾讯云+frp内网穿透

说明 家里用了移动宽带&#xff08;套餐便宜&#xff09;&#xff0c;结果没有了公网IP&#xff0c;只能想别的办法。 现在网上的方法大概三种 1. 第三方服务器代理&#xff1b; 要花钱&#xff0c;放弃! 2. frp穿透&#xff1b; 需要需要一台有公网IP的云服务器&#xff0…

线代——基础解系 vs 特征向量

基础解系 基础解系的概念是针对方程而言的&#xff1b;齐次线性方程组的解集的最大无关组称为齐次线性方程的基础解系&#xff1b;要求齐次线性方程组的通解&#xff0c;只需求出它的基础解系。 【例】 特征向量 特征向量和特征值满足关系式 AαλαA\alpha \lambda \alpha…