Bądź na bieżąco - RSS

Kopie zapasowe Docker

3 sierpnia, 2022 Kategoria Bez kategorii, Linux, MacOS, Porady, Windows
Kopie zapasowe Docker

Ten temat pojawiał się wielokrotnie we wpisach. Chodzi oczywiście o kopie zapasowe. Ludzie dzielą się na dwie kategorie tych, którzy je robią i tych, którzy je będą robili (truizm, ale trzeba go powtarzać do znudzenia). Tym razem, ponieważ od jakiegoś czasu bardzo popularne są rozwiązania oparte o konteneryzację, parę słów jak to zrobić gdy używamy środowiska Docker.

Oczywiście metodę, o której będzie za chwilę można również stosować np. do migracji całych kontenerów na nowe serwery.

Cała procedura składa się z kilku dosyć prostych kroków. Jedynym wymaganiem jest posiadanie dostępu w wiersza poleceń (konsola). Inna sprawa to mała sugestia, że najlepiej będzie skorzystać ze środowiska Linux (Debian, Ubuntu itp.) do budowy swojego serwera. Jednak w przypadku Windowsów również wszystko powinno działać.

Krok pierwszy to zatrzymanie kontenera, dla którego będziemy tworzyć kopię zapasową:

docker stop nazwa_kontenera

Jeżeli nie wiemy jakiej nazwy użyć lub po prostu otrzymujemy komunikat o błędzie wystarczy sprawdzić wszystkie dostępne kontenery:

docker container ls

W drugim kroku tworzymy obraz naszego kontenera:

docker commit nazwa_kontenera nazwa_kontenera

Ostatni parametr to tak naprawdę nazwa obrazu ale dla uproszczenia przyjmijmy, że jest ona taka sama jak nazwa kontenera.

Trzeci krok to zapisanie obrazu do pliku.

docker save nazwa_kontenera

W tym miejscu należy wspomnieć, że do tego momentu udało się zapisać stan kontenera. Jeśli instalacje, dla których robimy kopie mają zdefiniowane zewnętrzne wolumeny to należy skopiować ich zawartość oddzielnie. Generalnie można to zrobić ręcznie, ale dużo wygodniej będzie skorzystać z gotowego rozwiązania. Warto polecić skrypt docker-volumes.sh. Za jego pomocą dosyć łatwo można zapisać wszystkie stałe dane do jednego archiwum:

docker-volumes.sh nazwa_kontenera \ 
save nazwa_kontenera_wolumeny.tar.gz

Mając kopie zapasową w postaci dwóch plików tj. obrazu kontenera oraz wolumenów jesteśmy zabezpieczeni. Jeśli chcielibyśmy przenieść dane na inne sewery wystarczy skopiować je do nowej lokalizacji.

Ostatecznie na nowym serwerze, po przygotowaniu środowiska Docker, wykonujemy trzy polecenia.

Tworzymy kontener z wykorzystaniem skopiowanego obrazu:

docker create --name nazwa_kontenera \
{zestaw_opcji_uruchomieniowych} nazwa_kontenera

Przywracamy wolumeny:

docker-volumes.sh nazwa_kontenera load nazwa_kontenera_wolumeny.tar.gz

Uruchamiamy kopie kontenera:

docker start nazwa_kontenera

Przy odrobinie szczęścia, w tym momencie powinniśmy cieszyć się kolejną, nową instancją naszej usługi.

MG

Napisz Komentarz