docker — volumes、MySQL数据库持久化
文章目录
- docker — volumes、MySQL数据库持久化
- 一、概述
- 二、配置步骤
- 1. docker 安装 MySQL、持久化
- 三、常用命令
docker — volumes、MySQL数据库持久化
一、概述
容器数据丢失情况:
- 每个容器每次启动都是从镜像定义开始的。
虽然容器可以创建、更新和删除文件,但当容器被移除并且所有更改都与该容器隔离时,这些更改会丢失。 - 示例:
- 如数据库相关操作中:
利用 MySQL 镜像创建了 数据库容器,并且在容器中新建了数据库,正常使用没有问题。
-> 但是当删除该容器(或者docker-compose方式 down 完,又重新构建容器),原来容器中的数据库文件将会丢失。
- 如数据库相关操作中:
- 每个容器每次启动都是从镜像定义开始的。
volumes :
- docker 提供了数据持久化的机制为 volumes,即为 挂载。
- volumes:提供了将容器的特定文件系统路径连接回主机的能力,如果容器中的目录已挂载,则该目录中的更改也会在主机上看到。如果我们在容器重启时挂载相同的目录,我们会看到相同的文件。
二、配置步骤
1. docker 安装 MySQL、持久化
以安装 MySQL 5.7 为例子:
核心配置:
# 1. volumes 参数 -v 【宿主机本地磁盘路径】:/var/lib/mysql# 2. 完整命令: docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v 【宿主机本地磁盘路径】:/var/lib/mysql mysql:5.7# 3. 示例 docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v /home/xxx-user/mysql:/var/lib/mysql mysql:5.7
完整步骤:
查看docker仓库中的 mysql 版本:
docker search mysql
选择数据库镜像,以5.7为例:
docker pull mysql:5.7
查看已下载的镜像:
docker images
启动Mysql容器
# 启动容器,忽略MySQL大小写,设置数据库挂载到本地磁盘 # 宿主机本地磁盘路径,示例:/home/xxx-user/mysql docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root --lower_case_table_names=1 -v 【宿主机本地磁盘路径】:/var/lib/mysql -d mysql:5.7# 完整示例 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v /home/xxx-user/mysql:/var/lib/mysql -d mysql:5.7
登录Mysql数据库:
# 进入 mysql 终端 docker exec -it 【容器id】 bash#输入命令,并按提示输入密码root mysql -u root -p
三、常用命令
常用命令如下:
# 创建volume: docker volume create【volume名称】# 查看volume参数: docker volume inspect【volume名称】# 使用volume: # -v 宿主机本地磁盘路径:容器内路径 docker run -dit --name 【容器名称】 -v【volume名称】:/volume 【镜像名称】 # 例如: docker run -d -p 3306:3306 --name mysql_test -e MYSQL_ROOT_PASSWORD=root -v volume-mysql:/var/lib/mysql mysql:5.7#查看docker数据卷 docker volume ls# 删除volume:Remove one or more volumes docker volume rm 【volume名称】# 删除没使用的数据卷(谨慎使用):Remove all unused local volumes docker volume prune
docker — volumes、MySQL数据库持久化相关推荐
- docker中mysql数据库闪退的原因
docker中mysql数据库闪退的原因 问题描述 可能原因 其他 更新 问题描述 在dockers中启动mysql容器,使用docker ps 发现没有正在启动的容器,使用 docker ps -a ...
- docker修改mysql数据库密码,redis密码
1. docker修改mysql数据库密码 docker.cnf是宿主机的文件 第一次内容:vim docker.cnf [mysqld] skip-host-cache skip-name-reso ...
- 使用docker安装mysql数据库(超简单)
拉取镜像 ubuntu@VM-4-3-ubuntu:~$ sudo docker pull mysql:5.7 官方文档启动方式 注意设置root账号密码 $ docker run --name so ...
- Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...
作者 | Pythonicc 责编 | 王晓曼 出品 | CSDN博客 简介 1.什么是数据库读写分离 读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELET ...
- docker登录mysql数据库_Docker下搭建mysql数据库
1.获取官方镜像:[root@Centos7 mysql]# docker pull mysql/mysql-server:latest latest: Pulling from mysql/mysq ...
- docker登录mysql数据库_从docker容器连接到远程MySQL数据库
我正在努力将一个Django 1.5.x应用程序容器化,该应用程序通过ODBC连接到单独服务器上的 MySQL数据库: [mysql_default] database = DB_NAME drive ...
- 基于docker的php调用基于docker的mysql数据库的方法
1:建立基于docker的mysql,参考 Mac上将brew安装的MySql改用Docker执行 2:建立基于docker�php image 在当前目录,建立Dockerfile,内容如下 FRO ...
- ceph集群和数据库到底是储存数据_Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...
作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1.什么是数据库读写分离读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从 ...
- docker 安装mysql_docker|docker安装mysql数据库
javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...
最新文章
- Android 监听ScrollView的滑动
- Mysql 5.7 报错 3534 错误
- SAP Spartacus popover Component css 的重用设计
- eslint关闭===替换==;eslint关闭全等于校验;eslint关闭==校验
- 【华为云技术分享】华为专家亲述:如何转型搞 AI?
- 2022-2028年中国环保减速机行业运行动态及投资机会分析报告
- 将矩阵化为上三角矩阵
- Java实习日记(2-2)
- 在禁用uac_禁用仅管理员用户帐户控制(UAC)
- fast DFS 单机使用实例
- 后缀学习第三课(下)
- 网管实战:为网络系统构建ISA防火墙
- ResNet解析(二)
- CTF·Crypto·古典密码大全
- css3 3d 过 锯齿,css3 3d旋转 出现锯齿_html/css_WEB-ITnose
- 想知道录屏软件免费版有哪些?这4个工具能够做到,建议收藏备用
- 巨头集体跨界,老玩家悄然出圈,谁在争夺6亿电竞用户?
- COUNTIF函数:
- C++的strcmp
- IDEA通过插件安装Gitee并clone项目
热门文章
- 算法_趣味分数_Question5_列出真分数序列(java实现)
- 网页报错:You don't have permission to access
- 连接远程电脑虚拟机时,怎样重启远程电脑?
- 通过Keycloak API理解OAuth2与OpenID Connect
- Linux学习-96-win和vmware的linux系统之间文件传递
- 爱普生Epson LQ-680K 打印机驱动
- 仪表放大器和运算放大器优缺点对比
- 最新2019版个税计算器(5000起征点 + 个税专项扣除项)
- 基于L0边缘保持滤波的图像融合 matlab代码
- 如何清除 iPhone 上的其他存储来释放空间