4.1 Podstawowe metody backupu i przywracania danych
Jeśli kiedykolwiek w życiu straciłeś ważne dane, nie muszę ci tłumaczyć, dlaczego backupy są ważne. W tym wykładzie przyjrzymy się różnym metodom i narzędziom do tworzenia backupów i przywracania danych w Dockerze, w tym wolumenów i powiązanych katalogów.
Podstawowe metody backupu i przywracania danych
- Backupy wolumenów Dockera
- Użycie narzędzia tar do backupów
- Backupy baz danych wewnątrz kontenerów
- Przywracanie danych z backupów
4.2 Kopie zapasowe wolumenów Docker
Wolumeny Docker zapewniają wygodny sposób przechowywania danych poza kontenerami. Do tworzenia kopii zapasowych wolumenów można używać różnych podejść.
Przykład użycia komendy docker run do kopii zapasowej wolumenu
Tworzenie kopii zapasowej wolumenu
Utwórz kontener, który montuje wolumen, i użyj narzędzia tar do stworzenia archiwum danych:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf
/backup/my_volume_backup.tar.gz -C /data .
W tym przykładzie zawartość wolumenu my_volume jest archiwizowana do pliku my_volume_backup.tar.gz, który jest zapisywany w katalogu /path/to/backup na hoście.
Przykład przywracania wolumenu z kopii zapasowej
Przywracanie danych do wolumenu
Utwórz kontener, który montuje wolumen i katalog z kopią zapasową, i użyj narzędzia tar do wyodrębnienia danych:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
W tym przykładzie dane z archiwum my_volume_backup.tar.gz są wyodrębniane do wolumenu my_volume.
4.3 Użycie narzędzia tar do backupów
Narzędzie tar to potężne narzędzie do tworzenia backupów i odzyskiwania danych. Może być używane zarówno wewnątrz kontenerów, jak i na systemach hosta.
Przykład tworzenia backupu danych wewnątrz kontenera
Uruchom kontener z potrzebnymi danymi i stwórz archiwum za pomocą tar:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
W tym przykładzie dane z katalogu /data wewnątrz kontenera my_container są archiwizowane do pliku my_container_backup.tar.gz.
Przykład odzyskiwania danych z archiwum
Uruchom kontener i użyj tar do wyodrębnienia danych z archiwum:
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 Kopie zapasowe baz danych w kontenerach
W przypadku baz danych często używane są wyspecjalizowane narzędzia do tworzenia kopii zapasowych i przywracania danych.
Przykład tworzenia kopii zapasowej bazy danych PostgreSQL
Użyj narzędzia pg_dump, aby utworzyć kopię zapasową bazy danych:
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
W tym przykładzie baza danych mydb jest eksportowana do pliku mydb_backup.sql.
Przykład przywracania bazy danych PostgreSQL
Użyj narzędzia psql, aby przywrócić bazę danych z kopii zapasowej:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 Przywracanie danych z backupów
Przywracanie danych — to proces wydobywania danych z wcześniej stworzonych backupów.
Przykład przywracania danych z backupu wolumenu
Użyj polecenia docker run, aby wydobyć dane do wolumenu:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Przykład przywracania bazy danych MySQL
Użyj narzędzia mysqldump, aby stworzyć backup bazy danych:
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
Użyj narzędzia mysql, aby przywrócić bazę danych:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
GO TO FULL VERSION