【Docker】数据持久化 挂载

Docker的镜像是只读的,但是容器是可写的,我们可以将数据写入到容器,不过一旦容器删除数据将会丢 失,那么有什么办法能将数据进行持久化存储呢?

——在宿主机上开辟一块地方,存储内容和docker容器的存储内容一样

一、Data Volume

Data Volume本质上是Docker主机文件系统中的目录或文件,能够直接被挂载到容器的文件系统中,容器可以读写Volume中的数据,Volume数据可以被永久的保存,即使容器已经被销毁停止运行。

二、三种挂载方式

【具名挂载】和【匿名挂载】这两种方式不常用,这两种方式Docker会自动在主机的/var/lib/docker/volumes下生成一个目录

如果把容器删除了,需要重新从宿主机拿到容器,直接再次执行挂载命令即可

1、指定路径挂载——宿主机和容器中路径均给出

docker run -p 33306:3306 -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
解释:

容器启动时通过 -v 参数将 docker 主机上的/my/own/datadir目录挂载到容器里/var/lib/mysql目录

宿主机的文件夹(/my/own/datadir) 和 容器中的文件夹(/var/lib/mysql)产生映射

参数:
  • -v:--Volume,数据持久化

    这里不用自己新建文件夹/my/own/datadir  /var/lib/mysql,没有的话会自动创建的

  • -v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。
  • -e 后面跟的环境变量,每个不同的镜像可能不一样,可以去官网查询
    • 这里后面跟的是密码

结果查看:宿主机挂载的文件内容和容器内部的内容一样

1、进入容器内部,bin/bash没有,使用bin/sh

挂载目标路径可以放两(多)个位置——使用两(多)个-v 参数
 docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh

2、具名挂载——宿主机路径中 只给出名字,不在前面加/

docker run -p 33306:3306 -v chenyang_mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
挂载结果:

docker/volumes文件夹下产生一个chenyang_mysql文件夹

3、匿名挂载

只给出容器里的路径,不给出宿主机的路径
docker run -p 33306:3306 -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
挂载结果

实际挂载到了宿主机的/var/lib/docker/volumes路径下——位于某个volume中,根据时间可以区分

4、结果查看

  • 查看所有匿名volume

                 docker volume ls

  • 查看数据卷信息

                 docker volume inspect chenyang_mysql

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

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

相关文章

CSS响应式设计学习

一. CSS响应式设计是一种使网站在不同设备上能够自适应的技术。我们可以通过以下步骤进行学习: 掌握CSS布局:多数情况下,响应式设计都需要一定程度的布局技巧。需要我们熟悉CSS中的布局属性,如display、position、float等。学习媒…

低代码平台:业务开发“加速器”

一、现状 低代码开发平台要让每个人,包括开发者和普通业务人员,都能够成为企业数字化过程中的主导者和构建者!让普通人更容易上手! 基于这一目标,应用需求多的云服务商成为低代码投资的主要来源。一家云服务商如谷歌云…

AJAX的原理(重点)

◆ XMLHttpRequest 什么是XMLHttpRequest? 定义: 关系:axios 内部采用 XMLHttpRequest 与服务器交互 注意:直白点说就是axios内部就是封装了XMLHttpRequest这个对象来实现发送异步请求的 使用 XMLHttpRequest 步骤&#xff1a…

C# 实现 gRPC 服务和调用

写在前面 gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。 主要优点如下: 1.高性能轻量化。 2.协议优先的 API 定义模式,默认使用协议缓冲区,允许与语言无关的实现。 3.可用于多种语言的工具,以生成强类型服务器和客户…

项目解决方案:市小区高清视频监控平台联网整合设计方案(上)

目 录 一、项目需求 1.1业务需求 1.2技术需求 1.3 环境要求 1.3.1 硬件要求 1.3.2 技术服务要求 二、系统设计方案 2.1 视频监控平台基础功能设计 2.2 视频资源及联网设备编码与管理设计 2.2.1 全省现有联网视频资源属性 2.2.2 视频资源编码具体格…

Spring IoC容器(一)

IoC,Inversion of Control 控制反转,是一个过程。仅通过构造函数、工厂方法或在对象实例化后在对象实例上设置属性来定义其依赖关系。容器负责这些工作,这个过程从本质上来说是bean本身的反向,因此称为反向控制。 1 容器 负责实例化、配置及…

C语言入门(二)、每日Linux(三)——gcc命令,通过gcc命令熟悉C语言程序实现的过程

使用gcc编译C语言程序 C语言程序实现的过程gcc命令基础用法常用选项编译和汇编选项:优化选项:调试选项:链接选项:警告选项: 实验对于-o选项 通过gcc命令熟悉C语言程序的执行过程1.预处理2.编译阶段3.汇编阶段4.链接阶段…

牛客周赛round30D题讲解(公式推导)

写的时候题目理解错了(*/ω&#xff3c;*) 登录—专业IT笔试面试备考平台_牛客网 #include <bits/stdc.h>using ll long long;int main(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);ll x, y, l, r;std::cin >> x >> y >> l >>…

Day 34 | 贪心 1005.K次取反后最大化的数组和 、 134. 加油站、 135. 分发糖果

1005.K次取反后最大化的数组和 题目 文章讲解 视频讲解 思路&#xff1a;要按照绝对值大小进行排序&#xff0c;负数转换后还不到k个选择最小值不断反转 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {nums IntStream.of(nums).boxed().sorte…

大白话解析LevelDB 4: 查找一个 Key

文章目录 查询一个 Key查找 Key 的入口: DBImpl::Get(const ReadOptions& options, const Slice& key, std::string* value)从 MemTable 中查找从 Immutable MemTable 中查找从 SST 中查找 查询一个 Key 查找 Key 的入口: DBImpl::Get(const ReadOptions& options…

Python爬虫---scrapy的post请求

爬虫文件&#xff1a; import scrapyclass TestpostSpider(scrapy.Spider):name "testpost"allowed_domains ["fanyi.baidu.com"]# post 请求如果没有参数&#xff0c;那么这个请求将没有任何意义&#xff0c;所以start_urls也没有用了&#xff0c;pars…

Mysql 索引优化

Mysql 索引优化 mysql如何选择使用索引。 select *from user where username a and password b如果useranme和password都是普通索引&#xff0c;那么他们会把2个索引都查出来&#xff0c;然后在把他们的交集拿出来 如果username是唯一索引&#xff0c;password是普通索引&…

探究React中的非受控组件:自由而简便的表单处理

探究React中的非受控组件&#xff1a;自由而简便的表单处理 在React中&#xff0c;我们常听到"受控组件"的概念&#xff0c;但同样存在一种自由度更高、处理简便的形式——非受控组件。本文将深入介绍非受控组件的使用&#xff0c;通过代码片段中的登录表单实例&…

Java 面试题之 IO(二)

字符流 文章目录 字符流Reader&#xff08;字符输入流&#xff09;Writer&#xff08;字符输出流&#xff09; 文章来自Java Guide 用于学习如有侵权&#xff0c;立即删除 不管是文件读写还是网络发送接收&#xff0c;信息的最小存储单元都是字节。 那为什么 I/O 流操作要分为字…

状态管理与导航守卫

为什么要用vuex&#xff1f; 进行统一的状态管理&#xff0c;解决不同组件共享数据的问题。 如何使用vuex&#xff1f; 1.安装引入 npm install vuex --save 2.注册到vue中 import Vue from vue import Vuex from vuexVue.use(Vuex)3.实例化vuex的store export default new Vue…

算法训练营总结

目录 收获思考感悟后续 收获 不知不觉&#xff0c;已经跟着训练营刷了两个月的题。 之前也跟着代码随想录刷了一大半&#xff0c;因为出差中断没有坚持下来&#xff0c;仅有的基础也扔下了不少。 而这两个月跟着训练营最大的收获就是坚持&#xff0c;不会的题硬啃几天也要搞…

Java 与 JavaScript的区别

Java 与 JavaScript的区别 Java 与 JavaScript&#xff1a;概述Java的特点JavaScript 的起源JavaScript 的特点Java 与 JavaScript&#xff0c;哪个更好&#xff1f;JavaScript 与 Java 相似吗&#xff1f;Java 与 JavaScript 的区别JavaScript 在服务器端的运行方式是怎样的&a…

网络防御安全知识(第二版)

安全策略 传统的包过滤防火墙 --- 其本质为ACL列表&#xff0c;根据数据报中的特征进行过滤&#xff0c;之后对比规制&#xff0c; 执行动作。 五元组 --- 源IP&#xff0c; 目标IP&#xff0c;源端口&#xff0c; 目标端口&#xff0c;协议 安全策略 --- 相较于ACL的改进之…

网站打不开怎么办?高防IP弹性防护更省心

不管你是什么网站&#xff0c;商城网站、游戏网站或者支付网站都有可能存在被攻击的情况&#xff0c;超过防护就会被打死&#xff0c;网站随即而来就打不开了。网站打不开怎么办&#xff1f;看看是不是网站主机或者服务器被攻击了。攻击的大小不可控&#xff0c;选择高防服务器…