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 dockerJeś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 dockerUsuwamy tylko binaria Dockera, bez danych:
sudo apt remove docker docker.io containerd runc -yInstalujemy 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.shKiedy wszystko się wykona, sprawdzamy jeszcze wersję naszego Dockera:
docker --versionW 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 lsNiestety 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 lsW 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.
