Czy warto robić backup bazy przez volume kontenera?

0

W który z dwóch sposobów lepiej rozwiązać problem backupu bazy z kontenera:

  • skonfigurowanie volume podpiętego do bazy mapowanego z hosta do kontenera a następnie robienie backupa z volume: rozwiązanie na pewno bezpieczniejsze z punktu widzenia możliwości "wywalenia się" kontenera, ale pytanie czy zawsze bezpieczne będzie wówczas łączenie się mysql z zewnątrz aby pobrać backup
  • robienie backupu bezpośrednio poleceniem na kontenerze a następnie zrzucanie sql do hosta a potem przesłanie np scp na zewnątrz hosta
3

W ogólności nie możesz zakładać, że ślepe skopiowanie folderu, podczas gdy baza danych działa i pisze do plików na dysku, zapewni ci spójny backup. Są sposoby na to, żeby to zagwarantować (chwilowe zatrzymanie operacji na bazie + wtedy kopia) ale chyba nie o to pytasz.

W tym konkretnym przypadku najlepiej w kontenerze odpalić mysqldump (nie na hoście - bo możesz mieć np. złą wersję na hoście, nie wiem jak MySQL ale Postgres jest wyczulony na to) i przeciepać plik. Ewentualnie żeby nie przeciepywać, można sobie strumień przekierować w stylu docker exec -ti ... -- mysqldump ... > plik_na_hoście.sql

Możesz też rozważyć opcję nr 3, czyli osobny kontener (np. w ramach docker-compose) który ma w sobie mysqldumpa i połączy się do bazy po sieci i wykona backup. Ale to miałoby sens bardziej w Kubernetesie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1