Mariusz Borkowski - strona prywatna
Blog: Reinstalacja dockera w Debian Testing (Bookworm-Trixie)

Table of Contents

Strona głównaDydaktykaO mnie/dane adresoweBlog

Reinstalacja dockera w Debian Testing (Bookworm/Trixie)

Ze względu na komunikat:

The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with BuildKit

który zaczął się pojawiać po próbach zbudowania obrazu Dockera po użyciu komendy docker build i który to błąd jest opisany np. tutaj, zaistniała potrzeba reinstalacji dockera, który do tej pory był zainstalowany poprzez repozytoria debianowe.

Podejście pierwsze - nieudane

Idąc za radą postanowiłem skorzystać z https://docs.docker.com/desktop/install/linux/ a konkretnie: https://docs.docker.com/engine/install/debian/. i zainstalować Docker Desktop polecany jako najłatwiejsza z metod.

Wykonane kroki opisane są poniżej, ale…

WAŻNA UWAGA!

Problem: Ostatecznie ten sposób zarządzania oprogramowaniem docker w moim przypadku nie jest odpowiedni. Repozytorium dockera https://download.docker.com/linux/debian/dists/ zawiera pakiety dla różnych wersji Debiana, ale najwyższą z nich jest wersja stable (w momencie pisania tego tekstu jest to Bookworm). Ponieważ posiadam Debian w wersji testing (Trixie) poniższe polecenia (wykonane zgodnie z instrukcjami) dodadzą plik /etc/apt/sources.list.d/docker.list o treści: deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable a tego nie znajdziemy pod linkiem: https://download.docker.com/linux/debian/dists/.

Odinstalowanie pakietów dystrybucji

sudo apt remove docker.io docker-compose docker-doc podman-docker

Ponadto wymagane jest

Odinstalowanie dodatkowych pakietów zależnych

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

Aktualizacja listy pakietów

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Instalacja najnowszej wersji docker

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Podejście drugie - instalacja ''manualna''

Zgodnie z https://docs.docker.com/engine/install/debian/#install-from-a-package

Jeszcze poprzednio tego nie zrobiliśmy to teraz odinstalujmy pakiety systemowe….

Odinstalowanie pakietów dystrybucji

sudo apt remove docker.io docker-compose docker-doc podman-docker

Pobieranie paczek deb odpowiednich dla Twojego systemu

Wybrać musimy stąd: https://download.docker.com/linux/debian/dists/

Znów nie mamy do wyboru trixie. Trudno, zainstalujemy najnowszą wersję, czyli bookworm licząc na to, że w najbliższej przyszłości zmiany wprowadzane w testing nie ''rozjadą się'' z aktualnym stable.

A więc stąd: https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/ pobieramy

containerd.io_<version>_<arch>.deb
docker-ce_<version>_<arch>.deb
docker-ce-cli_<version>_<arch>.deb
docker-buildx-plugin_<version>_<arch>.deb
docker-compose-plugin_<version>_<arch>.deb

przy czym pobieram wersje z tego samego dnia (najbardziej aktualne).

# :dir /sudo::
rm -rf ~/temp/docker-installation-debs
mkdir  ~/temp/docker-installation-debs
cd ~/temp/docker-installation-debs

wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/containerd.io_1.7.22-1_amd64.deb

wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-ce_27.3.1-1~debian.12~bookworm_amd64.deb

wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-ce-cli_27.3.1-1~debian.12~bookworm_amd64.deb

wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-buildx-plugin_0.17.1-1~debian.12~bookworm_amd64.deb

wget
https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/docker-compose-plugin_2.29.7-1~debian.12~bookworm_amd64.deb

Instalujemy:

sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-buildx-plugin_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb
TODO Problem

UWAGA! Pakietów docker-ce i docker-ce-cli nie udało się zainstalować. docker-ce ponieważ zależy od docker-ce-cli, a docker-ce-cli ponieważ ''konflikt pakietów''.

mb@debi:~/temp/docker-installation-debs$ sudo dpkg -i docker-ce_27.3.1-1~debian.12~bookworm_amd64.deb 
Wybieranie wcześniej niewybranego pakietu docker-ce.
(Odczytywanie bazy danych ... 377078 plików i katalogów obecnie zainstalowanych.)
Przygotowywanie do rozpakowania pakietu docker-ce_27.3.1-1~debian.12~bookworm_amd64.deb ...
Rozpakowywanie pakietu docker-ce (5:27.3.1-1~debian.12~bookworm) ...
dpkg: problemy z zależnościami uniemożliwiają skonfigurowanie pakietu docker-ce:
 docker-ce zależy od docker-ce-cli; jednakże:
  Pakiet docker-ce-cli nie jest zainstalowany.

dpkg: błąd przetwarzania pakietu docker-ce (--install):
 problemy z zależnościami - pozostawianie nieskonfigurowanego
Wystąpiły błędy podczas przetwarzania:
 docker-ce
mb@debi:~/temp/docker-installation-debs$ sudo dpkg -i docker-ce-cli_27.3.1-1~debian.12~bookworm_amd64.deb 
Wybieranie wcześniej niewybranego pakietu docker-ce-cli.
dpkg: w odniesieniu do docker-ce-cli_27.3.1-1~debian.12~bookworm_amd64.deb zawierającego docker-ce-cli:
 docker-cli w konflikcie z docker-ce-cli
  docker-ce-cli (wersja 5:27.3.1-1~debian.12~bookworm) jest przeznaczony do zainstalowania.

dpkg: błąd przetwarzania archiwum docker-ce-cli_27.3.1-1~debian.12~bookworm_amd64.deb (--install):
 konflikt pakietów - nie będzie instalowany docker-ce-cli
Wystąpiły błędy podczas przetwarzania:
 docker-ce-cli_27.3.1-1~debian.12~bookworm_amd64.deb

Mimo to docker działa:

sudo service docker start
sudo docker run hello-world

Na chwilę obecną zignorowałem powyższe błędy i do pierwszych problemów działam na tym co mam… wiedząc, że być może trzeba będzie tu wrócić.

Zgodnie z tym co mamy tutaj: https://askubuntu.com/questions/1296017/what-does-docker-ce-cli-containerd-io-installation-packages-install teoretycznie nie powinienem potrzebować nie zainstalowanych pakietów…

Problem 2

Instalacja zepsuła zależności w systemie:

sudo apt upgrade

Należy uruchomić "apt --fix-broken install", aby je naprawić.
Niespełnione zależności:
 docker-ce : Wymaga: docker-ce-cli ale nie da się go zainstalować
             Poleca: docker-ce-rootless-extras ale nie da się go zainstalować
             Poleca: pigz ale nie jest zainstalowany
Błąd: Niespełnione zależności. Proszę spróbować wykonać "apt --fix-broken install" bez pakietów (lub podać rozwiązanie).

Po wydaniu żądanej komendy mamy…

sudo apt --fix-broken install

Naprawianie zależności... Gotowe     
Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej wymagane:
  docker-cli            libjsoncpp25             libsort-naturally-perl
  jed-common            libllvm17t64:i386        libu2f-udev
  kirigami-addons-data  libllvm18                linux-image-6.10.4-amd64
  libassuan0            libllvm18:i386           linux-image-6.10.6-amd64
  libgeos3.12.2         libmfx1                  linux-image-6.10.9-amd64
  libgit2-1.7           libmodule-find-perl      linux-image-6.9.12-amd64
  libgspell-1-2         libmodule-scandeps-perl  needrestart
  libhttp-parser2.9     libmozjs-102-0t64        python3-lib2to3
  libintl-perl          libpoppler-cpp0t64       slsh
  libintl-xs-perl       libpoppler134            tini
  libjim0.82t64         libslang2-modules
Aby je usunąć należy użyć "sudo apt autoremove".

USUWANE:
  docker-ce

Podsumowanie:
  Aktualizowanych: 0, Instalowanych: 0, Usuwanych: 1, Nieaktualizowanych: 1425
  1 nie w pełni zainstalowanych lub usuniętych.
Zwalniane miejsce: 111 MB

Kontynuować? [T/n] y
(Odczytywanie bazy danych ... 377089 plików i katalogów obecnie zainstalowanych.)
Usuwanie pakietu docker-ce (5:27.3.1-1~debian.12~bookworm) ...
needrestart is being skipped since dpkg has failed

Hmmmm….

No to w takim wypadku zresetowałem system… I teraz już można przeprowadzić upgrade bez problemu.

Aha! I kasujemy /etc/apt/sources.list.d/docker.list jako nie działające w debian.

Author: mb

Date: 2025-02-25 Tue 19:25

Emacs 29.4 (Org mode 9.6.15)