Skripte zum Migrieren von MongoDB mit Docker
Bei hola.cloud haben wir eine MongoDB 3.6 zwischen Maschinen migriert. Um sicherzustellen, dass wir keine Probleme mit den Versionen haben, haben wir genau dieselbe Version mit den offiziellen Docker-Images verwendet. Ich hinterlasse hier ein paar Skripte, die uns geholfen haben.
export.sh
#!/bin/bash
# check argument
if [ -z "${1:-}" ]; then
echo "Use: $0 <folder_name>"
exit 1
fi
BACKUP_DIR="$1"
mkdir -p "$BACKUP_DIR"
docker run --rm --network host \
-v $(pwd)/$BACKUP_DIR:/backup \
mongo:3.6 \
bash -c 'mongodump --host 127.0.0.1 --port 27017 --out /backup'
import.sh
#!/bin/bash
set -euo pipefail
# check argument
if [ -z "${1:-}" ]; then
echo "Use: $0 <backup_folder>"
exit 1
fi
BACKUP_DIR="$1"
if [ ! -d "$BACKUP_DIR" ]; then
echo "Error: folder '$BACKUP_DIR' does NOT exist"
exit 1
fi
docker run --rm --network host \
-v "$(pwd)/$BACKUP_DIR":/backup \
mongo:3.6 \
bash -c "mongorestore --host 127.0.0.1 --port 27017 /backup"
shell.sh
#!/bin/bash
set -euo pipefail
docker run -ti --rm --network host \
-v "$(pwd)/shell":/shell \
mongo:3.6 \
bash -c "mongo --host 127.0.0.1 --port 27017"
Comentarios