备份Docker容器中的MySQL和MongoDB

假设现在你运行了一个叫 mongodb 的container,需要备份到 /tmp/mongodb 目录下面。

$ docker run \
 --rm \
 --link mongodb:mongo \
 -v /tmp/mongodb:/tmp \
 mongo \
 bash -c 'mongodump --out /tmp --host $MONGO_PORT_27017_TCP_ADDR'

恢复

 $ docker run \
 --rm \
 --link mongodb:mongo \
 -v /tmp/mongodb:/backup \
 mongo \
 bash -c 'mongorestore /backup --host $MONGO_PORT_27017_TCP_ADDR'

备份MySQL

docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql

恢复MySQL

cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE