Zum Hauptinhalt springen Skip to page footer

Docker Community Edition auf Ubuntu 22.04 installieren: Eine Open-Source-Anwendung zur Bereitstellung von Containerumgebungen

| Tutorial | Docker Ubuntu

Docker Community Edition (Docker CE) ist eine Open-Source-Anwendung, die es ermöglicht, kapselte Umgebungen (Container) auf einem Server auszuführen. Entdecken Sie die Vorteile der Isolation von Anwendungen und lernen Sie die grundlegenden Installationsschritte sowie gängige Docker-Befehle kennen.

Docker Community Edition (Docker CE)

Docker Community Edition (Docker CE) ist eine Open-Source-Anwendung, die gekapselte Umgebungen (Container) bereitstellt, mit denen Anwendungen separat auf dem Server ausgeführt werden können.

Die Container sind von der Struktur des Betriebssystems isoliert und können die Arbeit der Hauptdienste auf dem Server nicht beeinträchtigen. Viele Entwickler und Administratoren nutzen Docker täglich. Neben der Installation werden auch einige der am häufigsten verwendeten Docker-Befehle vorgestellt.

Um mit der Docker-Engine unter Ubuntu zu beginnen, stellen Sie sicher, dass Sie die Voraussetzungen erfüllen, und folgen Sie dann den Installationsschritten.
 

Voraussetzungen

Hinweis:

Wenn Sie ufw oder firewalld zur Verwaltung der Firewall-Einstellungen verwenden, sollten Sie beachten, dass diese Ports Ihre Firewall-Regeln umgehen, wenn Sie Container-Ports mit Docker freigeben. Weitere Informationen finden Sie unter Docker und ufw.
 

  • Um Docker Engine zu installieren, benötigen Sie die 64-Bit-Version einer dieser Ubuntu-Versionen:
    • Ubuntu Lunar 23.04
    • Ubuntu Kinetic 22.10
    • Ubuntu Jammy 22.04 (LTS)
    • Docker Engine ist kompatibel mit den Architekturen x86_64 (oder amd64), armhf, arm64 und s390x.
  • Benutzerprivilegien: root oder Nicht-Root-Benutzer mit sudo-Rechten
     

Schritt 1. Aktualisieren Sie das System

Aktualisieren Sie die Systempakete auf die neuesten verfügbaren Versionen, bevor Sie eine Installation auf einem neuen Betriebssystem beginnen.
sudo apt-get update -y && sudo apt-get upgrade -y

Schritt 2. Docker-Abhängigkeiten installieren

Vor der Installation von Docker müssen Sie einige Abhängigkeiten von Docker installieren:
sudo apt-get install apt-transport-https curl gnupg-agent ca-certificates software-properties-common -y

Schritt 3. Docker-Schlüssel und Repository hinzufügen

Das Docker-Repository ist standardmäßig nicht im offiziellen Repository von Ubuntu 22.04 enthalten. Sie müssen zuerst den Schlüssel und dann das Repository hinzufügen.

So fügen Sie den GPGK-Schlüssel hinzu
sudo install -m 0755 -d /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 sudo chmod a+r /etc/apt/keyrings/docker.gpg
Sobald der GPGK-Schlüssel hinzugefügt wurde, können Sie das Projektarchivs hinzufügen:
echo  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu    "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Hinweis

Wenn Sie eine von Ubuntu abgeleitete Distribution wie Linux Mint verwenden, müssen Sie möglicherweise UBUNTU_CODENAME statt VERSION_CODENAME verwenden.

Aktualisieren Sie den apt-Paketindex:
sudo apt-get update
Mit Dem folgenden Befehl feststellen können Sie prüfen, ob Docker bereits auf Ihrem System installiert ist oder welche Version zur Installation bereit stet:
apt-cache policy docker-ce
Ausgabe:
docker-ce:
  Installed: (none)
  Candidate: 5:24.0.2-1~ubuntu.22.04~jammy
  Version table:
     5:24.0.2-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.1-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.0-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.6-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.5-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.4-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.3-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.2-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.1-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.0-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.24~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.23~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.22~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.21~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.20~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.19~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.18~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.17~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.16~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.15~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.14~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.13~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

Beachten Sie, dass docker-ce nicht installiert ist, aber der Kandidat (Version 5:24.0.2-1~ubuntu.22.04~jammy) für die Installation ist aus dem Docker-Repository für Ubuntu 22.04 (jammy).

Schritt 4. Docker installieren

Sie Docker mit den folgenden Befehlen installieren:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Starten und aktivieren Sie den Docker-Dienst nach erfolgreicher Installation:
sudo systemctl enable docker && sudo systemctl start docker
Führen Sie den folgenden Befehl aus, um den Status des Dienstes zu überprüfen:
sudo systemctl status docker
Sie sollten die folgende Ausgabe erhalten:
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-06-28 15:37:12 UTC; 48s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 687 (dockerd)
      Tasks: 10
     Memory: 98.5M
        CPU: 404ms
     CGroup: /system.slice/docker.service
             └─687 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jun 28 15:37:11 ubuntu systemd[1]: Starting Docker Application Container Engine...
Jun 28 15:37:11 ubuntu dockerd[687]: time="2023-06-28T15:37:11.577135043Z" level=info msg="Starting up"
Jun 28 15:37:11 ubuntu dockerd[687]: time="2023-06-28T15:37:11.579855210Z" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
Jun 28 15:37:11 ubuntu dockerd[687]: time="2023-06-28T15:37:11.645044305Z" level=info msg="[graphdriver] using prior storage driver: overlay2"
Jun 28 15:37:11 ubuntu dockerd[687]: time="2023-06-28T15:37:11.646346611Z" level=info msg="Loading containers: start."
Jun 28 15:37:12 ubuntu dockerd[687]: time="2023-06-28T15:37:12.070139281Z" level=info msg="Loading containers: done."
Jun 28 15:37:12 ubuntu dockerd[687]: time="2023-06-28T15:37:12.114592411Z" level=info msg="Docker daemon" commit=659604f graphdriver=overlay2 version=24.0.2
Jun 28 15:37:12 ubuntu dockerd[687]: time="2023-06-28T15:37:12.114834534Z" level=info msg="Daemon has completed initialization"
Jun 28 15:37:12 ubuntu dockerd[687]: time="2023-06-28T15:37:12.146876092Z" level=info msg="API listen on /run/docker.sock"
Jun 28 15:37:12 ubuntu systemd[1]: Started Docker Application Container Engine.
Der Docker-Dienst läuft auf keinem bestimmten Port, aber wenn Sie ihn überprüfen möchten, können Sie folgenden Befehl ausführen:
ps aux | grep docker
Sie erhalten die folgende Ausgabe:
root         687  0.1  0.9 1466824 73352 ?       Ssl  15:37   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root        1204  0.0  0.0   7004  2272 pts/0    S+   15:39   0:00 grep --color=auto docker
Stellen Sie sicher, dass die Installation der Docker-Engine erfolgreich war, indem Sie das Hello-World-Image ausführen:
sudo docker run hello-world
Ausgabe:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:a13ec89cdf897b3e551bd9f89d499db6ff3a7f44c5b9eb8bca40da20eb4ea1fa
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Sie haben die Docker Engine nun erfolgreich installiert und gestartet.

Tipp: Erhalten Sie Fehler, wenn Sie versuchen, ohne Root zu starten?

Die Docker-Benutzergruppe existiert zwar, enthält aber keine Benutzer, weshalb Sie sudo verwenden müssen, um Docker-Befehle auszuführen. Fahren Sie mit der Linux-Postinstallation fort, um nicht privilegierten Benutzern die Ausführung von Docker-Befehlen zu ermöglichen, und führen Sie weitere optionale Konfigurationsschritte aus.

Schritt 5. Docker verwenden

Hier zeigen wir Ihnen einige Docker-Befehle, die für Sie nützlich sein könnten.

Prüfen der Docker-Version:
docker -v
Ausgabe:
Docker version 24.0.2, build cb74dfc
Informationen über Docker:
docker info
Ausgabe:
Client: Docker Engine - Community
 Version:    24.0.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.10.5
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.18.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 24.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 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 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
 runc version: v1.1.7-0-g860f061
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.0-76-generic
 Operating System: Ubuntu 22.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 7.719GiB
 Name: ubuntu
 ID: 9218856e-7b4b-49ac-9f5a-53c97b298076
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
Aktuell sind auf unserem System keine aktiven Container vorhanden. Um die folgenden Befehle nachvollziehen zu können, müssen Sie zuerst den folgenden Befehl ausführen:
docker run -it ubuntu bash
Ausgabe:
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6b851dcae6ca: Pull complete
Digest: sha256:6120be6a2b7ce665d0cbddc3ce6eae60fe94637c6a66985312d1f02f63cc0bcd
Status: Downloaded newer image for ubuntu:latest

Der Befehl wird verwendet, um einen interaktiven Container basierend auf dem Ubuntu-Image in Docker auszuführen. Da der Cntainer auf dem System noch nicht vorhanden ist, wird er zuerst heruntergeladen. 

Erläuterung des Befehls

  • "docker run": Dieser Befehl startet einen neuen Container aus einem Image.
  • "-it": Diese Optionen stellen sicher, dass der Container im interaktiven Modus ausgeführt wird und Sie eine interaktive Shell innerhalb des Containers verwenden können.
  • "ubuntu": Dies ist der Name des Images, das verwendet werden soll. In diesem Fall wird das offizielle Ubuntu-Image verwendet.
  • "bash": Dies ist der Befehl, der innerhalb des Containers ausgeführt werden soll. Durch Angabe von "bash" öffnet sich eine interaktive Bash-Shell innerhalb des Containers.

Öffnen Sie nun ein neues Konsolenfenster und probieren Sie die folgenden Befehle aus
 

Auflistung der laufenden Container:
docker ps
Ausgabe:
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES
f6895cbf4283   ubuntu    "bash"    32 seconds ago   Up 32 seconds             hardcore_colden
Stoppen eines Docker-Containers: docker stop “id-of-container”
docker stop f6895cbf4283
Ausgabe:
f6895cbf4283
Starten eines Docker-Containers: docker start “id-of-container”
docker start f6895cbf4283
Ausgabe:
f6895cbf4283
Neu starten eines Docker-Containers: docker restart “id-of-container”
docker restart f6895cbf4283
Ausgabe:
f6895cbf4283
Entfernen eines Docker-Containers: docker remove “id-of-container”
docker remove f6895cbf4283
Ausgabe:
Error response from daemon: You cannot remove a running container f6895cbf4283e48ce2d6e5ece53d1308e7bad2306808c909bb5d5331a8d59ddf. Stop the container before attempting removal or force remove
Führen Sie also folgende Befehler hintereinander aus:
docker stop f6895cbf4283
docker remove f6895cbf4283
Ausgabe:
f6895cbf4283