22. docker 数据持久化 Data Volume
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的更多相关文章
- docker数据持久化/共享---volume,bind-mount,tmpfs-mount
一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供 ...
- Docker数据持久化及实战(Nginx+Spring Boot项目+MySQL)
Docker数据持久化: Volume: (1)创建mysql数据库的container docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD= my ...
- Docker 容器数据卷(Data Volume)与数据管理
卷(Volume)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享.通过卷,我们可以可以使修改数据直接生效,而不必 ...
- Docker系列教程05-Docker数据卷(Data Volume)学习
引言 在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失.要想实现数据的持久化,需要将数据从宿主机挂载到容器中.目前Docker提供了三种方式将数据从宿主机挂载到 ...
- Docker数据持久化与容器迁移
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或 ...
- docker数据持久化
转载/参考: https://www.jianshu.com/p/ef0f24fd0674 Docker的数据持久化主要有两种方式: bind mount docker managed volume ...
- docker数据卷(Data Volumes)
Docker宿主机和容器之间文件拷贝docker copy 前言: Docker 数据管理 在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行 数据共享,这必然涉及 ...
- Docker | 数据持久化与数据共享
数据持久化(安装MySQL) 参考另一篇Docker安装mysql: https://www.cnblogs.com/all-smile/p/16778376.html MySQL的数据持久化问题 # ...
- docker 数据持久化
confluence #!/bin/bash docker run \ --name confluence \ --volume "$PWD/data/opt":/opt \ -- ...
随机推荐
- 降维之奇异值分解(SVD)
看了几篇关于奇异值分解(Singular Value Decomposition,SVD)的博客,大部分都是从坐标变换(线性变换)的角度来阐述,讲了一堆坐标变换的东西,整了一大堆图,试图“通俗易懂”地 ...
- Vulkan 之 Synchronization
1.2之前定的版本采用 vkSemaphore和vkFence来进行同步, VkSemaphore allowed applications to synchronize operations acr ...
- 一、VIP课程:互联网工程专题 03-Maven基本概念与核心配置
概要: maven 基本概念 maven 核心配置 一.maven 安装与核心概念 概要: maven 安装 maven 编译(compile) 执行测试用例(test) maven 打包 mave ...
- md5sum|zip|
##move## ;i<=;i++));do cp combine_all.split_$i split_$i;done ##gzip## mkdir gzip/workshell ;i< ...
- 每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、默认路由、二级路由、路由守卫)
路由别名 在main.js中的路由中添加name来创建别名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ] ...
- Neo4j--UNIQUE约束
UNIQUE简介 和关系型数据库一样,对数据进行约束作用. 比如在某个属性上不能插入重复的节点. 比如属性的完整性约束. 创建UNIQUE约束 创建UNIQUE语法 CREATE CONSTRAINT ...
- js 获取时间对象
1.当前系统时间 var date=new Date(); 2.字符串转时间对象 var date=new Date("2018-01-01"); 3.获取年份: var y ...
- JQ+AJAX 发送异步请求
1. load() ; 作用:通过ajax 请求从服务器加载数据,并添加到符合要求的节点上 用法:$node.load(请求地址,请求参数) 请求参数写法: --"username=admi ...
- 深入理解class
一, class和自定义类型的区别: 1,类声明不会被提升. 2,类声明的代码自动运行在严格模式. 3,类的所有方法都是不可枚举的,而自定的方法必须使用Object.defineProperty来设置 ...
- java课程课后作业190530之找水王
从题目中我们可以看出,水王有着相当严苛的条件才可以成为,那就是必须拥有一半的评论量才可以当上水王.当然这就是破题的关键,最简单的算法当然是用O(N平方)的复杂度的那种算法,但显然,我们需要的不是这种. ...