当前位置: 首页 > news >正文

【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.lryc.cn/news/289570.html

相关文章:

  • redis-主从复制
  • 知识产权如何转为实缴资本,实操
  • docker-compose安装
  • 「 典型安全漏洞系列 」06.路径遍历(Path Traversal)详解
  • 【Android Gradle 插件】Gradle 参考文档收集
  • Controller的部分注解
  • CMake简明教程 笔记
  • 使用 sorted set 实现令牌桶限流
  • 云上高可用系统-韧性设计模式
  • 【保姆级教程】Windows11下go-zero的etcd安装与初步使用
  • golang通过go-git下载gitlab源码
  • 探索Pyecharts之美-绘制多彩旭日图的艺术与技巧【第37篇—python:旭日图】
  • c++ QT 信号的个人理解 信号就是独立文件调用的一种“协议”
  • C#语法(关键字)
  • 让B端管理软件既美观又实用的解决方案来了
  • npm run dev,vite 配置 ip 访问
  • 实验3:数据显示输出
  • 查看 Avro 格式的 Kafka 消息(启用了 Confluent Schema Registry )
  • QT+VS实现Kmeans聚类算法
  • openssl3.2 - 测试程序的学习 - test\acvp_test.c
  • Qt Quick 项目(第二集Qt Quick Application创建)
  • 深度强化学习(王树森)笔记03
  • Cesium材质特效
  • 华为产业链之车载激光雷达
  • java的Object类的hasCode()和ToString()
  • php数组算法(1)判断一维数组和多元数组中的元素是否相等并输出键值key
  • 已解决Error:AttributeError: module ‘numpy‘ has no attribute ‘float‘.
  • WordPress块编辑器(Gutenberg古腾堡)中如何添加脚注?
  • burpsuite怎么进行本地抓包?ctfer测试自搭建靶场必须学会!
  • VSCode Python调试运行:json编写