Docker MySQL备份

确立备份的MySQL容器

docker run --name mysql-back -e MYSQL_ROOT_PASSWORD=root -v /srv/mysql/backup:/mysql/backup -d mysql:5.7.17

 

查阅虚拟网络,其中 bridge 是 Docker 默认使用的杜撰网络:

docker network inspect bridge

  

在回到的结果中,找到 Containers 部分。内容如下:

"Containers": {
  "asdf2334a": {
    "Name": "mysql-a"
    "EndpointID": "sadfas234"
    "MacAddress": "...."
    "IPv4Address": "192.168.0.2"
    "IPv6Address": ""
  }

}

Containers 列出了具备应用 bridge 网络的器皿。因为我给 MySQL
服务器容器起名为 mysql-a,所以我翻看Name 为 mysql-a
的配备。IPv4Address表示容器mysql-a的虚拟IP是 192.168.0.2 。记录下那个IP

进入容器的 bash :

docker exec -it mysql-b bash

安装VIM和CRON定时任务:

apt-get update && apt-get install vim
apt-get update && apt-get install cron

浮动一个shell脚本文件来开展备份。

cat >/zc/mysql/backup.sh <<EOF
#!/bin/sh
zcDATE=\$(date +%Y%m%d)
mkdir /zc/mysql/backup/\$zcDATE
mysqldump -h '192.168.0.2' -uroot -p'123456' --databases db1 > /zc/mysql/backup/\$zcDATE/db1.sql
mysqldump -h '192.168.0.2' -uroot -p'123456' --databases db2 > /zc/mysql/backup/\$zcDATE/db2.sql
EOF

MySQL上设有六个数据库,名称分别是 db1
和 db2,利用这种模式在硬盘上备份数据。-h表示远程的服务器IP。-u 和 -p
分别是长途服务器的用户名和密码。这里不提议选拔 mysqldump 的
–all-database
选项。因为该选项会把远程MySQL里的体系数据库也备份下来,包括 root
用户的密码等内容。如若你要把导出的始末导入到其它机器上,这个系统安装(比如用户名和密码)会覆盖你的机械上原来的装置。

安装定时任务的启动时间:

crontab -e
0 23 * * * sh /zc/mysql/backup.sh

起步定时任务

service cron start

  

网站地图xml地图