Migracja z systemowego Dockera na wersję z oficjalnego repozytorium Docker Inc.

a golden docker logo on a black background

Domyślnie systemy oparte na Debianie i Ubuntu udostępniają Dockera w swoich własnych repozytoriach. Choć to wygodne, to jednak wersje tam dostępne często są starsze niż te oferowane przez oficjalne źródło download.docker.com.

Czy zmiana Dockera na wersję z oficjalnych repozytoriów wpłynie na istniejące kontenery? Odpowiedź brzmi: NIE. Docker przechowuje dane (obrazy, kontenery, wolumeny itp.) w katalogu /var/lib/docker. Ten katalog nie jest usuwany ani przez apt remove, ani przez instalację nowej wersji Dockera — o ile nie użyjesz purge z usuwaniem danych.

Dlaczego warto przejść na oficjalne repozytorium Dockera?

  • Nowsze wersje Dockera – oficjalne repozytorium oferuje aktualizacje znacznie szybciej.
  • Lepsze wsparcie bezpieczeństwa i stabilności.
  • Pełna kompatybilność z Docker Compose, Buildx, Volume Plugins i innymi funkcjami.

Przygotowanie do migracji Dockera

W pierwszym kroku należy upewnić się czy taka zmiana powinna mieć miejsce. Być może instalacja została wykonana z oficjalnych źródeł Docker. Aby to sprawdzić należy wykonać:

docker --version
apt list --installed | grep docker

Jeśli zobaczysz coś w stylu docker.io, oznacza to, że Docker pochodzi z systemowego repozytorium.

Przystępujemy do zatrzymania Dockera przed deinstalacją:

sudo systemctl stop docker

Usuwamy tylko binaria Dockera, bez danych:

sudo apt remove docker docker.io containerd runc -y

Instalujemy Docker z oficjalnego skryptu

We wcześniejszym wpisie Docker Swarm w Home Lab w trakcie instalacji Dockera przed uruchomieniem klastra Swarm, wskazałem już na ten sposób instalacji. Dzięki temu w dwóch prostych krokach dodajemy oficjalne repozytoria, klucz GPG Dockera, instalujemy najnowszą wersję docker-ce, docker-ce-cli, containerd.io. Wykonujemy:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Kiedy wszystko się wykona, sprawdzamy jeszcze wersję naszego Dockera:

docker --version

W moim przypadku pojawiła się informacja o wersji 28.2.2, a więc dokładnie takiej samej jak na drugim serwerze.

Sprawdźmy jeszcze czy wszystkie kontenery, obrazy i sieci, nadal są dostępne:

docker ps -a
docker images
docker volume ls

Niestety w moim przypadku nie zobaczyłem żadnego kontenera. Aby to naprawić należało uruchomić Dockera poleceniem sudo systemctl start docker. Na koniec warto jeszcze sprawdzić czy nasz klaster Swarm również działa poprawnie:

docker node ls

W moim przypadku wszystko jest ok. Wersje Dockera są już wyrównane a klaster widzi się prawidłowo. W kolejnym wpisie spróbujemy postawić pierwszy kontener w naszym klastrze Swarm. Przy okazji przeprowadzimy testy redundancji naszego kontenera i wyjaśnimy nieco metody działania Docker Swarm.

,

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *