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. 微信公众号开发 获取openid时报错40029 invalid code 问题的解决

    {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: aELCyY4ce-WOFLAa ...

  2. POJ 1852:Ants

    Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11754   Accepted: 5167 Description ...

  3. SpringBoot 上传文件突然报错 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1428942566812653608

    异常信息 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request ...

  4. 六十四、SAP中的内表的9种定义方式

    一.内表一共有9种定义方式,如下: 二.执行如下 *&--------------------------------------------------------------------- ...

  5. Node.js NPM 包(Package)

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json 包是打 ...

  6. Apache nifi 第一篇(概述)

    1.什么是Apache NiFi? 简单地说,NiFi是为了自动化系统之间的数据流.虽然数据流这种形式很容易理解,但我们在此使用它来表示系统之间的自动化和不同系统之间数据的流转.企业拥有多个系统,其中 ...

  7. MBE风格图标

    图标的定义 图标是一种通过相似性或类比行来代表对象的符号. 图标的重要性 1.图形以其无与伦比的识别性带来信息传达效率的提升. 2.图形以其百变多样的趣味性带来视觉体验的享受提成用户体验. 3.图形以 ...

  8. mybatis今年笔记

    1.读取配置文件:用的就是解析Xml文件的技术 2.mybatis是支持自己写dao层的,但是没有必要. mybatis做的事情: 第一个创建代理对象,第二个在代理对象中调用方法. 3.相同的注解如果 ...

  9. X2安装配置keras环境(包含matplotlib安装)

    https://blog.csdn.net/jonado13/article/details/83933453 1.安装pipapt install python3-pipE: Could not o ...

  10. 19 ~ express ~ 文章的增加 , 查看 ,修改 ,删除

    一,前台 1,添加文章 /views/admin/content_add.html {% extends 'layout.html' %} {% block main %} <ol class= ...