docker--数据持久化之Data Volume
使用mysql为例
查看docker hub官方的mysql image 的dockerfile,有这一行:VOLUME /var/lib/mysql
-v给volume创建别名
[root@localhost ~]# docker run -d --name mysql1 -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7.
31584edba6eb9b4aa772076f1c2d73c5eb7b4f1e62dd24b41c68518bdf62e11a
[root@localhost ~]#
[root@localhost ~]# docker volume ls
DRIVER VOLUME NAME
local mysql
[root@localhost ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31584edba6eb mysql:5.7. "docker-entrypoint.s…" seconds ago Up seconds /tcp, /tcp mysql1
[root@localhost ~]# docker volume
create inspect ls prune rm
[root@localhost ~]# docker volume inspect mysql
[
{
"CreatedAt": "2019-07-22T03:09:06-07:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/mysql/_data",#在宿主机的挂账路径
"Name": "mysql",
"Options": null,
"Scope": "local"
}
]
[root@localhost ~]#
删了container,不删volume ,重新创建mysql container,数据还在
[root@localhost ~]# docker exec -it mysql1 /bin/bash
root@31584edba6eb:/# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. MySQL Community Server (GPL) Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
rows in set (0.00 sec) mysql> create database docker;
Query OK, row affected (0.00 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| docker |
| mysql |
| performance_schema |
| sys |
+--------------------+
rows in set (0.00 sec) mysql> exit
Bye
root@31584edba6eb:/# docker rm -f mysql1
bash: docker: command not found
root@31584edba6eb:/# exit
exit
[root@localhost ~]# docker rm -f mysql1
INFO[--22T03::25.954289600-:] ignoring event module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
WARN[--22T03::26.032476919-:] 31584edba6eb9b4aa772076f1c2d73c5eb7b4f1e62dd24b41c68518bdf62e11a cleanup: failed to unmount IPC: umount /var/lib/docker/containers/31584edba6eb9b4aa772076f1c2d73c5eb7b4f1e62dd24b41c68518bdf62e11a/mounts/shm, flags: 0x2: no such file or directory
mysql1
[root@localhost ~]# docker volume ls
DRIVER VOLUME NAME
local mysql
[root@localhost ~]# docker run -d --name mysql1 -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7.
877377cb64ec6242d2cd9e821d3978e7f5e6d2dce791d88e605e3f5b2a098762
[root@localhost ~]# docker exec -it mysql2 /bin/bash
root@877377cb64ec:/# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. MySQL Community Server (GPL) Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| docker |
| mysql |
| performance_schema |
| sys |
+--------------------+
rows in set (0.00 sec) mysql>
docker--数据持久化之Data Volume的更多相关文章
- 数据持久化之Data Volume
废话不多说直接操作 1.启动一个MySQL测试容器 [root@localhost labs]# docker pull mysql #下载MySQL镜像 [root@localhost labs]# ...
- Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原。
Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原. 数据卷就是数据(一个文件或者文件夹). Docker的理念之一是将应用与其运行的环境打包,docker容器的生命周 ...
- Docker数据持久化与容器迁移
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或 ...
- Docker数据持久化及实战(Nginx+Spring Boot项目+MySQL)
Docker数据持久化: Volume: (1)创建mysql数据库的container docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD= my ...
- 22. docker 数据持久化 Data Volume
1 . 使用场景 在docker 容器被删除的时候 希望数据不丢失 2 . Volume 的使用 * 注意 在 mysql 的 Dockerfile 内 定义了 VOLUME ["var/ ...
- docker数据持久化/共享---volume,bind-mount,tmpfs-mount
一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供 ...
- docker数据持久化
转载/参考: https://www.jianshu.com/p/ef0f24fd0674 Docker的数据持久化主要有两种方式: bind mount docker managed volume ...
- Docker | 数据持久化与数据共享
数据持久化(安装MySQL) 参考另一篇Docker安装mysql: https://www.cnblogs.com/all-smile/p/16778376.html MySQL的数据持久化问题 # ...
- 23. docker 数据持久化 bind mounting
1. bind mounting 和 data volume 的区别 data volume 需要在 Dockerfile 定义 Volume bind mounting 只需要 -v 指明 容器外部 ...
- `docker数据持久化volume和bind mounts两种方式
将数据从宿主机到容器的三种方式: ,volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)保存数据的最佳方式 ,bind mounts 将宿主机上的任 ...
随机推荐
- 关于Visual Studio Code 以及 一些工具
常用插件 Path Intellisense 路径提示 open in browser 打开浏览器 ALT+B 代码块 ctrl + shift + p/或者设置(左下角右下角的齿轮)=> 命令 ...
- Java JNA (一)—— 调用dll
Java调用C++动态链接库的方式很多,有jnative,jna等.这里介绍如何通过jna的方式调用动态链接库. 调用代码很简单,就是需要注意几个问题. 补充:如dll内部访问配置文件,需将配置文件放 ...
- linux的vsftp使用介绍
vsftp 常用操作 安装 yum install vsftpd 启动服务 service vsftpd start 开启自动启动 chkconfig --level 35 vsftpd on 关闭匿 ...
- vue,一路走来(2)--路由vue-router
安装 Mint UI cnpm install mint-ui --save 如果你的项目会用到 Mint UI 里较多的组件,最简单的方法就是把它们全部引入.此时需要在入口文件 main.js 中: ...
- 洛谷P1446/BZOJ1004 Cards Burnside引理+01背包
题意:有n张牌,有R+G+B=n的3种颜色及其数量,要求用这三种颜色去染n张牌.n张牌有m中洗牌方式,问在不同洗牌方式下本质相同的染色方案数. 解法:这道题非常有意思,题解参考Hzwer学长的.我这里 ...
- 任务管理器taskmgr查看几核
- Sass:字符串函数-To-upper-case()、To-lower-case()
1.To-upper-case() To-upper-case() 函数将字符串小写字母转换成大写字母.如: //SCSS .test { text: to-upper-case(aaaaa); te ...
- 基因id
每个物种都有一个对应的Taxonomy ID: 9606 :人类 10090 :小鼠
- 英语单词Repository
Repository 来源——查看仓库的名称内容 [root@centos7 ~]# yum repolist Loaded plugins: fastestmirror Repository bas ...
- Python入门图