Docker 实战 常用的操作:mysql容器中的数据 导入|导出|备份等

时间:2024-10-14 10:19:57

首先建议参考这几篇 Docker基础
Docker 基础之 Docker概览,版本安装介绍,镜像,容器,network,数据卷,仓库
Docker 基础之 Dockerfile
Docker 基础之 Docker Compose

1.mysql镜像的备份|导出|导入

步骤:
0.查看 源mysql 的 docker镜像;

  • root权限下, docker ps 找到 mysql容器

1.备份 源mysql 数据库;

  • docker exec -it xxx(注:docker容器名称或ID均可) mysqldump -u xxx(数据用户名) -p xxx(数据库密码) db_name(数据库名称) > (导出表格路径)
  • 关于上述命令的解释,可以参考上面的几篇基础文章。这里在下面也做了粘贴

容器中执行新命令 docker exec
作用:
在容器中运行一个命令
命令格式:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
命令参数(OPTIONS):
-d, --detach 后台运行命令
-i, --interactive 即使没连接容器,也将当前的STDIN绑定上
-t, --tty 分配一个虚拟终端
-w, --workdir string 指定在容器中的工作目录
-e, --env list 设置容器中运行时的环境变量

2.导入到目标mysql容器;

  • docker exec -i xxx(容器名或id) db_name(数据库名) < (文件存放的路径)
    当然,也可以分步骤,先把文件拷贝到容器内部,然后通过 source 等导入
  • 法二: docker cp 容器名:/xxx/(路径); 然后进入容器内部并打开mysql命令行 docker exec -ti xxx(容器名或id) db_name(数据库名) <

友情提示: 1.数据库备份导入等操作的时候, 尽量使用命令行的方式;2.也尽量不要让sql文件在不同脚本之间搬动,每次转移完也要注意文件的大小等是否发生改变;