Installation und Konfiguration von Docker unter Ubuntu

Installation und Konfiguration von Docker unter Ubuntu

10.02.2023
Autor: HostZealot Team
2 min.
242

Moderne Infrastrukturen sind ohne Microservices und Container nicht denkbar. Diese Technologien eignen sich hervorragend für die Ausführung einer Anwendung in von Ressourcen isolierten Prozessen. Der Docker-Dienst ist zu einem festen Begriff geworden, wenn es um die Verwaltung von Containern geht. Es handelt sich um eine Anwendung, die die Verwaltung von Anwendungsprozessen in Containern vereinfacht.

Was ist ein Container? Es ist eine Struktur, die innerhalb von Anwendungen alle erforderlichen Bibliotheken und Abhängigkeiten enthält. Dadurch ist es möglich, die benötigten Pakete auf andere Distributionen zu portieren, ohne eine ähnliche Umgebung erstellen zu müssen. Im Gegensatz zur Hardware-Virtualisierung sind Container einfach zu portieren und benötigen weniger Ressourcen. Am wichtigsten ist, dass Container völlig unabhängig von externen Distributionen sind.

In diesem Artikel erklären wir die Funktionsweise der Docker Community Edition am Beispiel von Ubuntu 20.04. Wir beschreiben die Interaktion mit Containern und Images anhand konkreter Beispiele und erläutern, was Docker Compose ist.

Empfohlene Spezifikationen für Hardware

Was die Hardware-Empfehlungen betrifft, so gibt es für Docker keine Hardware-Anforderungen. Da es sich um ein Virtualisierungstool handelt, hängt alles von der Größe der Anwendungen ab, die in den Containern bereitgestellt werden sollen. Es gibt eine Anforderung an die "Maschine" – die Unterstützung von Virtualisierung.

Bevor Sie mit der Installation fortfahren, sollten Sie überprüfen, ob Ihre Umgebung die Mindestsystemanforderungen erfüllt:

  • 64-Bit-Architektur;
  • Kernel-Version 3.10.

Einrichten von Docker in Ubuntu

Es wurde bereits erwähnt, dass wir einen Ubuntu-Server für die Einrichtung von Docker verwenden würden.

Installation von Docker

Wir benötigen die neueste Version des Dienstprogramms. Sie müssen nicht im Ubuntu-Repository nachsehen, da dort nicht immer die neueste Softwareversion veröffentlicht wird.

Wir schlagen vor, dass Sie direkt zur offiziellen Docker-Registrierung gehen. Dazu muss eine neue Batch-Quelle hinzugefügt werden. Es muss ein GPG-Schlüssel heruntergeladen werden, um sicherzustellen, dass die Arbeitsdateien heruntergeladen werden können. Sobald dies geschehen ist, kann das Paket installiert werden.

Aktualisieren Sie zunächst die Liste der Pakete auf dem Gerät:

$ sudo apt update


Als Nächstes müssen Sie eine Software installieren, die dafür ausgelegt ist, dass apt korrekt über HTTPS funktioniert: 

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common


Optional kann zusätzliche Kernel-Software erforderlich sein. Dies ist notwendig, damit das aufs-Dateisystem mit den Dienstprogramm-Containern arbeiten kann. So können Sie Änderungen schnell erkennen und Snapshots erstellen. Dies sind die Abbilder, die schreibgeschützt sind.

$ sudo apt install linux-image-extra-$(uname -r) linux-image-extra-virtual


Hinzufügen eines GPG-Schlüssels für das Docker-Repository:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


Die folgenden drei Befehle sind erforderlich, um ein Software-Repository direkt zu Ubuntu hinzuzufügen und anschließend Docker in die Distribution zu installieren.

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update && apt-cache policy docker-ce
$ sudo apt install -y docker-ce


In einigen Fällen kann es vorkommen, dass Sie beim Starten von Docker keine Verbindung zu einem Socket herstellen können. Um dies zu vermeiden, fügen Sie den Benutzer zur Docker-Gruppe hinzu. Verwenden Sie den folgenden Befehl:

$ sudo usermod -aG docker $(whoami)


Nach diesen Schritten wird die Software installiert, gestartet und zum Autostart hinzugefügt. Sie können die Funktionalität zusätzlich mit dem folgenden Befehl überprüfen:

$ sudo systemctl status docker


Wenn der Daemon korrekt arbeitet, wird eine ähnliche Meldung in der Zeile erscheinen:

$Output● docker.service - Docker Application Container Engine

    Geladen: geladen (/lib/systemd/system/docker.service; aktiviert; Vendor Preset: aktiviert)

    Aktiv: aktiv (läuft) seit Tue 2020-05-19 17:00:41 UTC; vor 17s

AusgelöstDurch: ● docker.socket

      Docs: https://docs.docker.com

  Main PID: 24321 (dockerd)

      Tasks: 8

    Memory: 46.4M

    CGroup: /system.slice/docker.service

            └─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Damit ist die Installation abgeschlossen und das Dienstprogramm ist einsatzbereit. Um Docker vollständig nutzen zu können, benötigen Sie ein Hilfsprogramm namens Docker Compose.

installation und konfiguration von docker unter ubuntu

Installieren des Dienstprogramms Docker Compose

Was ist diese Software? Compose ist ein Werkzeug, mit dem Sie mehrere verschiedene Container betreiben können. Das Dienstprogramm verwendet Dienstdefinitionen, um vollständig anpassbare Umgebungen mit mehreren Containern zu erstellen. Sie können Netzwerk- und externen Speicherplatz gemeinsam nutzen. Führen Sie die folgende Befehlssequenz aus:

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


Mit diesem Befehl werden die richtigen Berechtigungen für die Ausführung von docker-compose-Befehlen festgelegt:

$ sudo chmod +x /usr/local/bin/docker-compose


Prüfen Sie, ob die Software auf dem neuesten Stand ist und bestätigen Sie die erfolgreiche Installation:

$ docker-compose --version


Wenn wir eine solche Schlussfolgerung sehen:

Ausgabe

docker-compose Version 1.29.2, Build 5becea4c

Der Prozess war also erfolgreich.

Merkmale von Docker

Der Befehl docker wird mit Optionen und Unterbefehlen mit zusätzlichen Argumenten verwendet. Schauen wir uns die schematische Syntax an:

docker [Optionen] [Befehl] [Argumente]


Mit diesem Befehl können Sie die Tabelle aller Teams anzeigen:

$ Docker


Die Tabelle wird geöffnet:




  1. attach Lokale Standardeingabe-, Ausgabe- und Fehlerströme an den laufenden Container anhängen
  2. build Ein Image aus einer Docker-Datei erstellen
  3. commit Erstellen eines neuen Abbilds aus Containeränderungen
  4. cp Kopieren von Dateien/Ordnern zwischen dem Container und dem lokalen Dateisystem
  5. create Einen neuen Container erstellen
  6. diff Überprüfung von Änderungen an Dateien oder Verzeichnissen im Container-Dateisystem
  7. events Empfang von Echtzeit-Ereignissen vom Server
  8. exec Führen Sie den Befehl im laufenden Container aus
  9. export Exportieren des Container-Dateisystems als tar-Archiv
  10. history Den Verlauf des Bildes anzeigen
  11. images Liste der Bilder
  12. import Importieren Sie den Inhalt des tar-Archivs, um ein Dateisystemabbild zu erstellen
  13. info Anzeige von systemweiten Informationen
  14. inspect Rückgabe von Low-Level-Objektinformationen
  15. docker kill Einen oder mehrere laufende Container beenden
  16. load Laden Sie das Bild aus dem tar-Archiv oder von STDIN herunter
  17. login Einloggen in das Register
  18. docker logout Streichung aus dem Register
  19. docker logs Abrufen der Containerprotokolle
  20. pause Anhalten aller Prozesse in einem oder mehreren Containern
  21. port Liste der Port-Zuordnungen oder eine bestimmte Zuordnung für einen Container
  22. ps Ausgabe einer Liste von Containern


Arbeiten mit Docker-Images

Es ist nicht möglich, den Container ohne ein heruntergeladenes Docker-Abbild zu verwenden. Wenn keine Änderungen vorgenommen wurden, übernimmt das Dienstprogramm das Abbil vom offiziellen Hub. Sie wird Docker Hub genannt. Sie enthält alle Abbilder, die von den Entwicklern des Dienstprogramms unterstützt werden. Jeder kann Abbilder in das Hub-Register einstellen. Daher gibt es für beliebte Anwendungen, Linux-Distributionen und Applets bereits vorbereitete Abbilder im Repository.

Führen wir einen Befehl ein, um zu prüfen, ob das Docker-Image in den internen Speicher des Rechners geladen werden kann:

$ docker run hello-world


Das Dienstprogramm prüft zunächst, ob sich das angegebene Abbild im Speicher befindet. Da Docker nichts erkennt, lädt es das erforderliche Image herunter und führt es dann im Container aus:

$Output


Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

9bb5a5d4561a: Pull complete

Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d

Status: Downloaded newer image for hello-world:latest


Hello from Docker!

This message shows that your installation appears to be working correctly.

...

Diese Meldung zeigt an, dass der Prozess des Herunterladens und Startens des gewünschten Abbilds ohne Fehler verläuft.

Um das gewünschte Docker-Abbild im Hub zu finden, verwenden Sie den Unterbefehl search und den Namen des gewünschten Images. Das Skript beginnt, den Inhalt des Docker-Hubs zu durchsuchen und zeigt alle Ergebnisse an, die mit den angegebenen Parametern übereinstimmen. Hinweis in der Spalte OFFICIAL. Wenn neben dem Abbild in dieser Spalte eine OK-Zeile steht, bedeutet dies, dass es sich um ein offizielles Abbild des Gründerteams handelt und nicht um einen Fork.

Um sie herunterzuladen, müssen Sie nur den Unterbefehl pull eingeben. Nehmen wir an, es handelt sich um ein Ubuntu-Image. In diesem Fall geben wir ein:

$ docker pull ubuntu


Dieses Ergebnis zeigt, dass der Prozess erfolgreich war:

$ Ausgabe


Standard-Tag verwenden: latest

latest: Pulling from library/ubuntu

6b98dfc16071: Pull complete

4001a1209541: Pull complete

6319fc68c576: Pull complete

b24603670dc3:Pull complete

97f170c87c6f: Pull complete

Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d

Status: Neueres Image für ubuntu:latest heruntergeladen

Die Tabelle der installierten Abbilder kann mit dem Befehl angezeigt werden:

 $ Docker-Images


Ausführen einer Container-Befehlsshell

Der RUN-Befehl wird zum Starten des Containers verwendet. Erwägen Sie die Optionen, die in Verbindung mit RUN angewendet werden können:

  • -d - startet den Container im Hintergrund;
  • -t - Verbindung von tty mit dem Container für Ein- und Ausgabe;
  • -e - setzt Umgebungsvariablen, um die Lizenzvereinbarung zu akzeptieren und die Anfangskonfiguration zu ändern;
  • -name - Zuweisung eines Namens für den Container;
  • -p - veröffentlicht Container-Ports auf dem Host, um den Fernzugriff auf DSE, OpsCenter und Studio zu ermöglichen;
  • -i - interaktiver Zugriff auf den Container-Befehlsprozessor
  • -v - bindet ein Verzeichnis auf dem lokalen Host an diese DSE zur Konfigurationsverwaltung oder Datenspeicherung;
  • --link - verbindet den DSE-Container mit OpsCenter, Studio mit DSE.

Verwenden Sie den Befehl:

$ docker run -it ubuntu


Wir führen das Ubuntu-Image mit Zugriff auf den Befehlsprozessor im interaktiven Modus aus. Sobald dies geschehen ist, navigieren wir zur Containerumgebung und ihre ID wird in der Konsole angezeigt. Wir werden diese Informationen später benötigen, wenn wir den Container für den Abtransport angeben müssen.

Alle üblichen Befehle sind innerhalb des Containers verfügbar. Da das Bild die meisten der von Ihnen benötigten Dateien nicht enthält. Daher wird eine Aktualisierung des Repository erforderlich sein:

$ apt-get update


Beachten Sie, dass der Befehl sudo nicht verwendet wird. Da die Arbeit als Superuser ausgeführt wird, ist die Eingabe des Befehls sudo nicht erforderlich. Installieren wir ein einfaches Dialogprogramm:

$ apt-get install -y dialog

Speichern von Parametern

Innerhalb des Containers ist jede Aktion möglich, Sie können Dateien erstellen, Anwendungen installieren oder Daten löschen – alle Aktionen beziehen sich auf den laufenden Container. Wenn der Container gelöscht wird, verschwinden auch alle Änderungen. Wenn Sie die Einstellungen beibehalten wollen, verwenden Sie den Befehl commit. Dadurch wird ein geänderter Container erstellt. Zunächst benötigen wir eine Liste der laufenden Container:

$ docker ps


Hier brauchen wir einen Bezeichner, führen Sie diesen Befehl aus:

$ docker commit -m "welche Änderungen wurden hinzugefügt" -a "Autorenname" container_id repository/new image name


Sobald der Vorgang abgeschlossen ist, wird der geänderte Container im Speicher abgelegt. Um es zu finden, führen Sie die Bilderliste aus:

$ docker commit -m "welche Änderungen wurden hinzugefügt" -a "Autorenname" container_id repository/new image name

Befehle zur Ausführung von Containern

Betrachten Sie die Liste der zu kontrollierenden Befehle:

  • start – startet den Container, der angehalten wurde;
  • stop ist der gegenteilige Wert, der das Starten des Containers stoppt;
  • rm – Löschen des Containers.

Es ist nicht notwendig, einen Bezeichner anzugeben, damit der Befehl korrekt funktioniert. Sie können den Containernamen verwenden, der in einer separaten Spalte verfügbar ist

Beispiel:

$ docker start d9b100f2f636
$ docker start sharp_volhard

Docker-Container-Verwaltung

Mit dem Befehl Containerliste können Sie Optionen ausführen:

  • -a. Zeigt eine Liste aller lokal verfügbaren Container an.
  • -l. Gibt den zuletzt erstellten Container aus.

Resümee

Docker ist das wichtigste Dienstprogramm für die Ausführung und Verwaltung von Containern. Es ist leicht zu erlernen und auch ein Anfänger kann alle Funktionen leicht verstehen. Docker beschleunigt die Entwicklung erheblich, erleichtert die Verlagerung eines Systems von einem Server auf einen anderen und ermöglicht die Arbeit in einer sicheren Umgebung.

Verwandte Artikel