So installierst du Docker und Docker Compose unter Debian 11

Docker ist eine kostenlose und quelloffene Plattform für die Entwicklung, Auslieferung und den Betrieb von Anwendungen in einer Container-Umgebung. Sie ermöglicht es dir, deine Anwendung von deiner Infrastruktur zu trennen. Das macht die Entwicklung, den Einsatz und die Verwaltung von Containern leichter, einfacher und sicherer. Docker ist dafür gedacht, eine lokale Entwicklungsumgebung einzurichten.

Wenn du mehr als einen Container für deine Anwendung erstellen möchtest, solltest du Docker-compose verwenden. Docker-compose ist ein Werkzeug, mit dem du Anwendungen mit mehreren Containern definieren und gemeinsam nutzen kannst. Mit Docker compose kannst du die YAML-Datei verwenden, um alle Dienste zu definieren und sie mit einem einfachen Befehl auf einmal auszuführen.

In diesem Lernprogramm zeigen wir dir, wie du Docker und Docker compose auf einem Debian 11 System installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Erste Schritte

Als Erstes wird empfohlen, den Paket-Cache deines Systems auf die neueste Version zu aktualisieren. Du kannst sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Wenn du fertig bist, installiere die anderen benötigten Abhängigkeiten mit dem folgenden Befehl:

apt-get install apt-transport-https software-properties-common ca-certificates curl gnupg lsb-release -y

Docker installieren

Standardmäßig ist die neueste Version von Docker nicht im offiziellen Repository von Debian 11 enthalten. Daher musst du das Docker CE Repository zur APT hinzufügen. Du kannst es mit dem folgenden Befehl hinzufügen:

curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Sobald das Docker-Repository hinzugefügt ist, aktualisiere das Repository und installiere Docker CE mit dem folgenden Befehl:

apt-get update -y
apt-get install docker-ce docker-ce-cli -y

Nach der Installation überprüfst du die Docker CE Version mit dem folgenden Befehl:

docker version

Du solltest die folgende Ausgabe erhalten:

Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:22 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:31 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Docker-Dienste verwalten

Du kannst die Docker-Dienste ganz einfach mit dem systemd-Dienstprogramm verwalten.

Um einen Docker-Dienst zu starten, führe den folgenden Befehl aus:

systemctl start docker

Um einen Docker-Dienst neu zu starten, führe den folgenden Befehl aus:

systemctl restart docker

Um einen Docker-Dienst anzuhalten, führe den folgenden Befehl aus:

systemctl stop docker

Um den Docker-Dienst beim Neustart des Systems zu starten, führe folgenden Befehl aus:

systemctl enable docker

Um den Docker-Status zu überprüfen, führe den folgenden Befehl aus:

systemctl status docker

Du solltest den Status von Docker in der folgenden Ausgabe sehen:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-09-10 07:19:35 UTC; 27s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 29018 (dockerd)
      Tasks: 7
     Memory: 32.6M
        CPU: 407ms
     CGroup: /system.slice/docker.service
             ??29018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809035575Z" level=info msg="scheme \"unix\" not registered, fallback to def>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809219999Z" level=info msg="ccResolverWrapper: sending update to cc: {[{uni>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809410545Z" level=info msg="ClientConn switching balancer to \"pick_first\">
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.897972507Z" level=info msg="Loading containers: start."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.186940748Z" level=info msg="Default bridge (docker0) is assigned with an IP>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.298681937Z" level=info msg="Loading containers: done."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.356364773Z" level=info msg="Docker daemon" commit=75249d8 graphdriver(s)=ov>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.357524464Z" level=info msg="Daemon has completed initialization"
Sep 10 07:19:35 debian11 systemd[1]: Started Docker Application Container Engine.
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.401626151Z" level=info msg="API listen on /run/docker.sock"

Einen Container mit Docker ausführen

Mit dem Befehl docker run kannst du ein beliebiges Image herunterladen und innerhalb des Containers ausführen.

Führe zum Beispiel den folgenden Befehl aus, um ein Debian-Image herunterzuladen und einen Container zu starten:

docker run --rm -it --name test debian:latest /bin/sh

Du solltest die folgende Ausgabe erhalten:

Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
955615a668ce: Pull complete 
Digest: sha256:08db48d59c0a91afb802ebafc921be3154e200c452e4d0b19634b426b03e0e25
Status: Downloaded newer image for debian:latest
#

Führe den folgenden Befehl aus, um den Debian-Container zu verlassen

#exit

Docker Compose installieren

Standardmäßig ist Docker Compose nicht im Standard-Repository von Debian 11 verfügbar. Daher musst du das Docker Compose Binary von Github herunterladen.

Führe den folgenden Befehl aus, um die Docker Compose-Binärdatei herunterzuladen:

curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -

Sobald der Download abgeschlossen ist, gibst du der heruntergeladenen Datei die Berechtigung zum Ausführen und verschiebst sie mit dem folgenden Befehl in den Systempfad:

chmod +x docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose

Als Nächstes überprüfst du die Version von Docker compose mit folgendem Befehl:

docker-compose version

Du solltest die folgende Ausgabe sehen:

docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Docker Compose-Befehle

Um eine Docker Compose-Datei zu starten, führe den folgenden Befehl aus:

docker-compose up -d

Um alle laufenden Container anzuhalten, führe den folgenden Befehl aus:

docker-compose down

Um den laufenden Container zu pausieren und wieder anzuhalten, führe den folgenden Befehl aus:

docker-compose pause
docker-compose unpause

Um alle laufenden Container aufzulisten, führe den folgenden Befehl aus:

docker-compose ps

Um die Logs der laufenden Dienste zu überprüfen, führe den folgenden Befehl aus:

docker-compose logs

Fazit

Glückwunsch! Du hast Docker und Docker Compose erfolgreich unter Debian 11 installiert. Jetzt kannst du deine Anwendung mit Docker und Docker Compose erstellen, ausliefern und ausführen.

Das könnte dich auch interessieren …