Docker Update auf Debian 12

fmeyer84

New member
Hallo,

ich habe im Oktober 2023 auf einem Proxmox einen Debian 12 Container erstellt, wo drauf wiederum Docker (Version 20.10.24+dfsg1) läuft für meine Grafana/InfluxDB/Node-Red Umgebung.
Zusätzlich habe ich Portainer installiert um die einzelnen Docker Container zu verwalten. Alles passt auch und läuft wunderbar.

Nun wollte ich mal Docker aktualisieren und habe deswegen die Paketquelle von Docker zu Debian hinzugefügt. Wenn ich ein Update der Paketquellen machen, wird die Docker Quelle auch abgefragt, jedoch kriege ich kein Update angeboten.

Apache-Konfiguration:
root@srv-pv:~# apt update
OK:1 http://security.debian.org bookworm-security InRelease
OK:2 http://deb.debian.org/debian bookworm InRelease
OK:3 http://deb.debian.org/debian bookworm-updates InRelease
OK:4 https://download.docker.com/linux/debian bookworm InRelease
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Alle Pakete sind aktuell.
root@srv-pv:~#

Laut Internet ist Docker aber mittlerweile bei Version 26.1.0 (Quelle Wikipedia). Was mache ich falsch?

Grüße
Fabian
 
Leider auch nichts:

Code:
root@srv-pv:~# apt upgrade
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Paketaktualisierung (Upgrade) wird berechnet… Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
root@srv-pv:~#
 
Docker (Version 20.10.24+dfsg1)
Vermutlich hast Du in der Anleitung https://docs.docker.com/engine/install/debian/#uninstall-old-versions den Schritt übersprungen, bei dem man das Docker Paket (und seine Abhängigkeiten) die aus den Debian eigenen Repos stammen deinstalliert und docker-ce aus den Docker-Repos installiert. Die Pakete aus dem docker-ce repo heissen anders.

Das ist einfach herauszufinden:
Code:
me@docker:~$ dpkg -l | grep -E '(docker|container)'
ii  containerd.io                          1.6.31-1                          amd64        An open and reliable container runtime
ii  docker-buildx-plugin                   0.14.0-1~ubuntu.20.04~focal       amd64        Docker Buildx cli plugin.
ii  docker-ce                              5:26.1.0-1~ubuntu.20.04~focal     amd64        Docker: the open-source application container engine
ii  docker-ce-cli                          5:26.1.0-1~ubuntu.20.04~focal     amd64        Docker CLI: the open-source application container engine
ii  docker-ce-rootless-extras              5:26.1.0-1~ubuntu.20.04~focal     amd64        Rootless support for Docker.
ii  docker-compose-plugin                  2.26.1-1~ubuntu.20.04~focal       amd64        Docker Compose (V2) plugin for the Docker CLI.
ii  docker-scan-plugin                     0.23.0~ubuntu-focal               amd64        Docker scan cli plugin.
Bei dir sollten in der zweiten Spalte dann entsprechend etwas anderes als ~ubuntu.20.04~focal stehen
 
Code:
root@srv-pv:~# dpkg -l | grep -E '(docker|container)'
ii  containerd                      1.6.20~ds1-1+b1                amd64        open and reliable container runtime
ii  docker-compose                  1.29.2-3                       all          define and run multi-container Docker applications with YAML
ii  docker.io                       20.10.24+dfsg1-1+b3            amd64        Linux container runtime
ii  python3-docker                  5.0.3-1                        all          Python 3 wrapper to access docker.io's control socket
ii  python3-dockerpty               0.4.1-4                        all          Pseudo-tty handler for docker Python client (Python 3.x)
ii  tini                            0.19.0-1                       amd64        tiny but valid init for containers
root@srv-pv:~#
 
Was sagt "apt-cache madison docker-ce"?
Code:
root@srv-pv:~# apt-cache madison docker-ce
 docker-ce | 5:26.1.0-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:26.0.2-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:26.0.1-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:26.0.0-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:25.0.5-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:25.0.4-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:25.0.3-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:25.0.2-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:25.0.1-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:25.0.0-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.9-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.8-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.7-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.6-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.5-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.4-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.3-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.2-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.1-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:24.0.0-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.6-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.5-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.4-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.3-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.2-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.1-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
 docker-ce | 5:23.0.0-1~debian.12~bookworm | https://download.docker.com/linux/debian bookworm/stable amd64 Packages
root@srv-pv:~#
 
Das sieht doch gut aus, der Befehl von Confluencer zeigt bei mir allerdings:
ii containerd.io 1.6.26-1 amd64 An open and reliable container runtime
ii docker-buildx-plugin 0.11.2-1~debian.11~bullseye amd64 Docker Buildx cli plugin.
ii docker-ce 5:24.0.7-1~debian.11~bullseye amd64 Docker: the open-source application container engine
ii docker-ce-cli 5:24.0.7-1~debian.11~bullseye amd64 Docker CLI: the open-source application container engine
ii docker-ce-rootless-extras 5:24.0.7-1~debian.11~bullseye amd64 Rootless support for Docker.
ii docker-compose-plugin 2.21.0-1~debian.11~bullseye amd64 Docker Compose (V2) plugin for the Docker CLI.
Also hau Docker nochmal weg und installier das aus den Docker-Repos neu :)
 
Teil mal die Ausgabe von docker info.

Code:
root@srv-pv:/# docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 5
  Running: 5
  Paused: 0
  Stopped: 0
 Images: 5
 Server Version: 20.10.24+dfsg1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
  userxattr: true
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 1.6.20~ds1-1+b1
 runc version: 1.1.5+ds1-1+deb12u1
 init version:
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 6.5.13-5-pve
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 4GiB
 Name: srv-pv
 ID: UUKA:DCOC:IE6P:SM7V:ZC4H:KVDC:FTN4:G363:HMFS:OREK:7BVS:44PQ
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 
Beim Deinstallieren werden nur die Binaries gelöscht, aber nicht das Datenverzeichnis /var/lib/docker.
Solange deine bisherige Installation und die Neuinstallation denselben Storage Driver verwenden, sollte nichts verloren gehen.

Du kannst natürlich vor der Aktualisierung ein Backup aller Volumes ziehen. Wichtig für ein konsistentes Backup: die Container sollten nicht laufen, sonst kann es sein, dass das Backup unvollständig ist.

Nehmen wir an du hast in einem Verzeichnis ein Unterverzeichnis namens backup und bist root User (oder hast es dir so eingerichtet, dass auch dein normaler User die docker cli nutzen darf), dann könntest du mit so einem Befehl alle Volumes backupen:

Code:
for volume in $(docker volume ls -q); do
   docker run -ti --rm -v $volume:/source -v ./backups:/backups alpine bash -c 'cd /source; tar czvf /backups/$volume.tar.gz'
 done

Und hiermit wiederherstellen:
Code:
for backup in $(ls -1 backups); do
    docker create volume ${backup%%.tar.gz}
    docker run -ti --rm -v ${backup%%.tar.gz}:/target -v ./backups:/backups alpine bash -c 'cd /target; tar xzvf /backups/$backup'
 done

Damit werden alle Volumes behandelt, die mit docker volume ls aufgelistet werden. Alles was da nicht drin steht sind Binds, bei denen ein Host-Verzeichnis in ein Container-Verzeichnis gemountet wird. Die werden damit natürlich nicht gebackuped.
 
Zuletzt bearbeitet:
Storage Driver: overlay2 Backing Filesystem: extfs
Sieht gut aus. Die Neuinstallation sollte denselben Storage Driver verwenden und damit nahtlos weiterarbeiten können.

Selbst wenn nicht: die Daten sind nicht weg, sondern können im Zweifel nicht eingelesen werden. Man könnte dann immer noch über die Konfigurationsdatei /etc/docker/daemon.json den Storage Driver forcieren. Ich gehe nicht davon aus, dass es notwendig sein wird.
 
Zuletzt bearbeitet:
Sieht gut aus. Die Neuinstallation sollte denselben Storage Driver verwenden und damit nahtlos weiterarbeiten können.

Selbst wenn nicht: die Daten sind nicht weg, sondern können im Zweifel nicht eingelesen werden. Man könnte dann immer noch über die Konfigurationsdatei /etc/docker/daemon.json den Storage Driver forcieren. Ich gehe nicht davon aus das es notwendig sein wird.

Ok danke - also sollte ich erstmal über die Anleitung

https://docs.docker.com/engine/install/debian/#uninstall-old-versions

alte Pakete deinstallieren und dann neu installieren?
 
So wie es dort steht :)

Dabei nur diesen Teil ignorieren:

Sonst landest Du am Ende bei Docker Desktop for Linux. Das hat eine schöne UI und ganz viel Zeug funktioniert dann nicht mehr oder anders...
 
So wie es dort steht :)

Dabei nur diesen Teil ignorieren:

Sonst landest Du am Ende bei Docker Desktop for Linux. Das hat eine schöne UI und ganz viel Zeug funktioniert dann nicht mehr oder anders...

Das hat erstmal super funktioniert - die Container laufen auch noch:

Code:
root@srv-pv:/# docker info
Client: Docker Engine - Community
 Version:    26.1.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.26.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 6
  Running: 5
  Paused: 0
  Stopped: 1
 Images: 6
 Server Version: 26.1.0
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: false
  userxattr: true
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: e377cd56a71523140ca6ae87e30244719194a521
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.5.13-5-pve
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 4GiB
 Name: srv-pv
 ID: 9fb32514-b95e-488e-adb2-efe9ae4de5e3
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

root@srv-pv:/#

Habt ganz lieben Dank für eure Hilfe - das ging alles ja super schnell und kompetent! Ganz lieben Dank!
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
4.620
Beiträge
47.339
Mitglieder
4.273
Neuestes Mitglied
kiran
Zurück
Oben