1 . 使用场景

  在docker 容器被删除的时候  希望数据不丢失

2 . Volume 的使用

  * 注意 在 mysql 的 Dockerfile 内 定义了 VOLUME ["var/lib/mysql"]

  创建一个 mysql 的container

  sudo docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

  sudo docker logs mysql1 查看 mysql1 的日志

  查看 volume 使用情况 即可看到 mysql volume 使用情况

  sudo docker volume ls

  

  sudo docker volume rm [VOLUME NAME 上面 VOLUME 的全名]

  查看 volume 详情

  docker volume inspect [VOLUME NAME 上面 VOLUME 的全名]

  

  其中 红线部分为 数据挂载的地方

  

  创建 第二个 mysql container

  sudo docker run -d --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

  查看 volume  列表

  sudo docker volume ls

  查看 第二个 volume 详情

  sudo docker volume inspect  [VOLUME NAME 上面 VOLUME 的全名]

  验证 volume 不会随 container 的删除而删除

    停止并删除 mysql1 mysql2

    docker stop mysql1 mysql2 && docker rm mysql1 mysql2

    查看volume  发现docker volume 还在

    docker volume ls

    

    volume 起别名   -v 参数

    重新创建 mysql1 container  并将mysql的数据存储位置命名为mysql

    sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

    再次查看生成 volume  发现生成的 volume 为 mysql 了

    docker volume ls

    

    判断 volume 是否生效

      进入 mysql1 容器内

        docker exec -it mysql1 /bin/bash

      进入mysql

        mysql -u root  即可

        create database docker;    创建docker 数据库

        show databases;     查看数据库是否创建成功

        exit        退出mysql

       退出 mysql1 容器

        exit

      关闭并删除 mysql1 容器

      docker rm -f mysql1

      查看mysql1 的 volume  发现mysql 的 volume 还在

      docker volume ls

      重新创建 mysql1 并指定volume 还是 mysql

      sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

      查看 volume

      docker volume ls

      到 mysql1 容器内查看 docker 数据库是否还存在

      docker exec -it mysql /bin/bash

      mysql -u root

      show databases;  发现 docker 数据库还在

      

      

      

22. docker 数据持久化 Data Volume的更多相关文章

  1. docker数据持久化/共享---volume,bind-mount,tmpfs-mount

    一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供 ...

  2. Docker数据持久化及实战(Nginx+Spring Boot项目+MySQL)

    Docker数据持久化: Volume: (1)创建mysql数据库的container docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD= my ...

  3. Docker 容器数据卷(Data Volume)与数据管理

    卷(Volume)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享.通过卷,我们可以可以使修改数据直接生效,而不必 ...

  4. Docker系列教程05-Docker数据卷(Data Volume)学习

    引言 在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失.要想实现数据的持久化,需要将数据从宿主机挂载到容器中.目前Docker提供了三种方式将数据从宿主机挂载到 ...

  5. Docker数据持久化与容器迁移

    上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或 ...

  6. docker数据持久化

    转载/参考: https://www.jianshu.com/p/ef0f24fd0674 Docker的数据持久化主要有两种方式: bind mount docker managed volume ...

  7. docker数据卷(Data Volumes)

    Docker宿主机和容器之间文件拷贝docker copy 前言: Docker 数据管理 在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行 数据共享,这必然涉及 ...

  8. Docker | 数据持久化与数据共享

    数据持久化(安装MySQL) 参考另一篇Docker安装mysql: https://www.cnblogs.com/all-smile/p/16778376.html MySQL的数据持久化问题 # ...

  9. docker 数据持久化

    confluence #!/bin/bash docker run \ --name confluence \ --volume "$PWD/data/opt":/opt \ -- ...

随机推荐

  1. HDU - 6205 card card card (尺取法)

    题意:有n堆牌,ai表示每堆牌的牌数,bi表示每堆牌的penaltyvalue,操作开始前,可以重复进行将第一堆牌挪到最后一堆这一操作.然后,对于挪完后的牌,从第一堆开始,依次取.对于每一堆牌,首先将 ...

  2. dango 常用 静态文件 中间件 admin管理 上传图片

    静态文件 项目中的CSS.图片.js都是静态文件.一般会将静态文件放到一个单独的目录中,以方便管理.在html页面中调用时,也需要指定静态文件的路径,Django中提供了一种解析的方式配置静态文件路径 ...

  3. JavaWeb面试题(转)

    1.Tomcat的优化经验 答:去掉对web.xml的监视,把JSP提前编辑成Servlet:有富余物理内存的情况下,加大Tomcat使用的 JVM内存. 2.什么是Servlet? 答:可以从两个方 ...

  4. unicode字符等价探究

    Demobaidu.com(\uff41)能跳转到baidu.combаidu.com(\u0430)不能跳转到baidu.com,被认为成一个其他域名 等价原因两个不同编码的Unicode字符之间可 ...

  5. winfrom窗体的透明度

    在VS中创建一个Winform项目,其默认的窗体名称为 Form1. 在VS设计界面中对 Form1 的 Opacity 属性值设置为 50%. 没错,就这样就可以了. 方法2:            ...

  6. JAVA作用域和排序算法介绍

    一.作用域 1.作用域的概念 所谓的作用域是指引用可以作用到的范围. 一个引用的作用域是从引用定义位置到包裹它的最近的大括号的结束位置.只有在作用域范围内才可以访问到引用,超出作用域无法访问引用. 定 ...

  7. vue 中 {{}} 和 v-text 和 v-html 区别

    data: { message:'<h3>我是一只小小小小鸟!</h3>' }, <div class="" >{{message}}</ ...

  8. PyCharm下创建并运行我们的第一个Django项目

    PyCharm下创建并运行我们的第一个Django项目 准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm 1. 创建一个新的工程 第一次运行Pycha ...

  9. mount(挂载)

    拷贝文件到优盘 sdcm@sdcm:/mnt$ sudo fdisk -l Disk /dev/sdc: 15.5 GB, 15529279488 bytes255 heads, 63 sectors ...

  10. 【每日Scrum】第十天冲刺

    一.计划会议内容 尝试整合代码 二.任务看板 任务看板 已完成:登录与个人界面布局实现,UI设计美化,地图主界面 进行中:功能整合, 待进行:连接数据库 三.scrum讨论照片 四.产品的状态 无 五 ...