docker部署mysql并挂载数据卷
- 备份mysql源文件
- windows下备份数据库
# 方法一:进入到mysql安装路径下的bin文件,执行备份命令 # pg_dump -h localhost -p 数据库端口 -U 数据库用户名 -d 要备份的数据库名 > 备份后文件的路径\备份文件名 mysqldump -hlocalhost -uroot -p demo_mysql > D:\demo_mysql.sql # 方法二:通过Navicat提取sql备份文件
- ubuntu下备份数据库
# mysqldump -hIP -u用户名 -p 要备份的数据库名 > 备份后文件的路径\备份文件名 mysqldump -hlocalhost -uroot -p demo_mysql > /home/demo_mysql.sql
- windows下备份数据库
- 创建数据卷
# 创建总数据卷文件夹 mkdir /home/centos/data-volume # 创建mysql数据卷文件夹 mkdir /home/centos/data-volume/mysql-volume # 创建mysql-data、databasefile、log文件夹 cd /home/centos/data-volume/mysql-volume; mkdir mysql-data; mkdir databasefile; mkdir log;
- 下载镜像并创建运行容器
# 下载指定镜像版本或者下载最新版本(mysql:latest) docker pull mysql:5.7.30 # 创建并运行容器 docker run -it -d --name demo-mysql \ -v /home/centos/data-volume/mysql-volume/mysql-data:/var/lib/mysql \ -p 23307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.30
参数 说明 -i 以交互模式运行容器,通常与 -t 同时使用 -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -d 后台运行容器,并返回容器ID –name 为容器指定一个名称 -v 绑定一个数据卷,数据卷不会随着容器的删除而消失,格式为:主机(宿主)数据卷文件或目录:容器文件或目录 -p 指定端口映射,格式为:主机(宿主)端口:容器端口 -e 设置默认用户root的密码,格式为MYSQL_ROOT_PASSWORD=密码 - 查看容器信息
# 查看容器是否运行 docker ps # 查看容器列表(得到容器名或者容器ID) docker ps -a # 查看容器日志 docker logs 容器名或者容器ID # 获取容器的元数据 docker inspect 容器名或者容器ID
- 还原数据库
- 通过工具或者命令把最开始备份的文件上传到/home/centos/data-volume/mysql-volume/databasefile目录下
- 复制备份文件至容器中
# docker cp 宿主机文件路径 容器名或者容器ID:容器文件路径 docker cp /home/centos/data-volume/mysql-volume/databasefile/demo_mysql.sql demo-mysql:/home
- 进入容器
# exec命令可以进入容器并且在退出时不会打断容器运行 docker exec -it demo-mysql /bin/bash
- 登录mysql命令行控制台
# mysql -U 用户名 -p mysql -u root -p # 输入创建容器时设置的密码
- 创建新的数据库(在执行还原命令前需要创建一个空的数据库)
# 以下为mysql命令行控制台状态 # 创建新的数据库(需要与原来数据库名相同) mysql> create database demo_mysql; # 查看数据库列表 mysql> show databases; # 退出控制台状态 mysql> \q
- 执行数据库还原命令
# mysql -u用户名 -p 数据库名(需要与原数据库名相同) < 要导入的数据库数据(demo_mysql.sql) mysql -uroot -p demo_mysql < /home/demo_mysql.sql
- 【docker|docker部署mysql并挂载数据卷】退出容器
exit 或者 Ctrl + D
- 通过工具或者命令把最开始备份的文件上传到/home/centos/data-volume/mysql-volume/databasefile目录下
- 保存日志
# 将容器的日志实时下载到指定路径:docker logs -f 容器名或者Id >> 路径/文件 & docker logs -f demo-mysql >> /home/centos/data-volume/mysql-volume/log/demo-mysql.log & #查看日志 docker logs -f demo-mysql cat /home/centos/data-volume/mysql-volume/log/demo-mysql.log
推荐阅读
- 「云原生的进阶之路」|【Docker 那些事儿】容器数据卷的妙手
- docker|青龙面板白屏一键修复
- 青龙|解决青龙面板白屏问题记录
- 其他|如何修改青龙面板端口/有效规避青龙被爆破风险/适用Docker所有容器/大型连续剧之如何修改端口
- #|Sql Server 解决“用户登录失败,错误编18456”
- Docker学习笔记|Docker 安装 Nginx 容器 (完整详细版)
- Linux|Centos7上安装IPFS
- Docker|20.docker cp从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
- Docker|手动阀手动阀