Docker ist ein Tool, mit dem Sie schlanke, eigenständige Pakete namens Container erstellen, bereitstellen und verwalten können . Diese Container verfügen über den erforderlichen Code, die Bibliotheken, die Laufzeit, die Systemeinstellungen und die Abhängigkeiten, die zum Ausführen einer Anwendung erforderlich sind.
Diese Anleitung behandelt die Installation der Docker-Engine auf verschiedenen Linux-Distributionen mithilfe von apt Paketmanager, einschließlich Ubuntu und Debian, sowie das Erhalten und Ausführen von Docker-Images.
Bevor Sie beginnen
-
Stellen Sie sicher, dass Sie über die Befehlszeile Zugriff auf einen Linux-Server haben, auf dem eine unterstützte Linux-Distribution ausgeführt wird. Wenn nicht, befolgen Sie die Anleitungen „Erste Schritte“ und „Einrichten und Sichern einer Compute-Instanz“, um einen neuen Linode zu erstellen.
Hinweis Dieses Handbuch wurde für Nicht-Root-Benutzer geschrieben. Befehlen, die erhöhte Berechtigungen erfordern, wird das Präfix
sudo
vorangestellt . Wenn Sie mitsudo
nicht vertraut sind Befehl finden Sie im Handbuch Benutzer und Gruppen. -
Sehen Sie sich die folgenden Docker-Leitfäden an, um ein besseres Verständnis von Docker, seinen Vorteilen und seiner Verwendung zu erlangen.
- Eine Einführung in Docker
- Wann und warum Docker verwendet werden sollte
Installieren der Docker-Engine auf Ubuntu und Debian
Docker Engine ist die zugrunde liegende Containerisierungssoftware, die beim Bereitstellen von Docker-Containern verwendet wird. Die folgenden Anweisungen installieren Docker Engine auf einer dieser unterstützten Ubuntu- und Debian-Versionen:
Unterstützte Distributionen: Ubuntu 20.04, Ubuntu 18.04, Ubuntu 16.04, Debian 10, Debian 9. Neuere Nicht-LTS-Releases wie Ubuntu 21.04, 20.10 und 21.10 sollten ebenfalls unterstützt werden.
-
Stellen Sie sicher, dass Docker derzeit nicht installiert ist. Die Ausgabe, die anzeigt, dass eines der Pakete nicht gefunden wurde, kann problemlos ignoriert werden.
sudo apt remove docker docker-engine docker.io
-
Installieren Sie die Pakete, die zum Konfigurieren des Docker-Repositorys erforderlich sind:
sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
-
Fügen Sie den GPG-Schlüssel von Docker hinzu. Ersetzen Sie im folgenden Befehl
[url]
mit der URL, die der Distribution entspricht, die Ihr System ausführt.curl -fsSL [url]/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Ubuntu:
https://download.docker.com/linux/ubuntu
- Debian:
https://download.docker.com/linux/debian
- Ubuntu:
-
Fügen Sie den Stall hinzu Docker-Repository, das wiederum
[url]
ersetzt mit der URL, die der Distribution entspricht, die Ihr System ausführt.echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [url] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
Installieren Sie Docker Engine und andere erforderliche Pakete:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
Weitere Installationsanweisungen für diese Distributionen finden Sie in der Docker-Dokumentation:
- Installieren Sie die Docker-Engine unter Ubuntu
- Installieren Sie die Docker-Engine unter Debian
Starten und Testen von Docker
Nachdem Docker Engine installiert ist, starten Sie Docker und überprüfen Sie, ob alles funktioniert, indem Sie ein Test-Image ausführen.
-
Stellen Sie sicher, dass der Docker-Server ausgeführt wird.
sudo systemctl start docker
-
Konfigurieren Sie Docker optional so, dass es beim Hochfahren des Servers gestartet wird. Dies wird empfohlen, wenn Sie beabsichtigen, eine Produktionsanwendung innerhalb dieser Docker-Installation auszuführen.
sudo systemctl enable docker sudo systemctl enable containerd
-
Vergewissern Sie sich, dass Docker korrekt installiert ist, indem Sie das „hello-world“-Image ausführen.
sudo docker run hello-world
Bei Erfolg sollte Docker das hello-world-Image herunterladen und ausführen und eine Erfolgsmeldung ausgeben. Neben anderem Text sollte die Ausgabe eine Nachricht ähnlich der folgenden enthalten:
Hello from Docker! This message shows that your installation appears to be working correctly.
Verwendung von Docker mit einem Nicht-Root-Benutzer
Standardmäßig sudo
ist erforderlich, um Docker-Befehle auszuführen, aber eine neue Gruppe namens docker , wurde während der Installation erstellt. Wenn der Docker-Daemon startet, öffnet er einen Unix-Socket für Docker Gruppenmitglieder.
Bevor Sie fortfahren, vergewissern Sie sich, dass Sie über ein eingeschränktes Benutzerkonto verfügen, das nicht vorhanden ist gehören zur sudo-Gruppe. Wenn Sie noch kein eingeschränktes Benutzerkonto erstellt haben, finden Sie Anweisungen in den Leitfäden Einrichten und Sichern einer Compute-Instanz oder Linux-Benutzer und -Gruppen.
-
Geben Sie den folgenden Befehl ein, um einen Benutzer zum Docker hinzuzufügen Gruppe, ersetzt [Benutzer] mit dem Namen Ihres eingeschränkten Benutzerkontos.
sudo usermod -aG docker [user]
-
Melden Sie sich als eingeschränkter Benutzer beim System an.
-
Stellen Sie sicher, dass der eingeschränkte Benutzer
docker
ausführen kann Befehle ohnesudo
indem Sie das Bild „hello-world“ erneut ausführen.docker run hello-world
Die Ausgabe sollte eine ähnliche Erfolgsmeldung wie die vorherige Ausgabe haben.
Achtung Der Docker Die Gruppe gewährt ähnliche Rechte wie der Root-Benutzer. Weitere Informationen dazu, wie sich dies auf die Systemsicherheit auswirken kann, finden Sie im Handbuch Docker Daemon Attack Surface in der Docker-Dokumentation. Um den Docker-Daemon ohne Root-Rechte auszuführen, befolgen Sie die Anweisungen unter Docker-Daemon als Nicht-Root-Benutzer ausführen (Rootless-Modus).
Beheben von Fehlern beim Laden von Konfigurationsdateien
Wenn der Benutzer sudo docker
ausgeführt hat Befehle, bevor sie der Gruppe beitreten, wird ihnen möglicherweise ein Fehler beim Laden der Konfigurationsdatei wie folgt angezeigt:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Das Problem ist, dass das .docker-Verzeichnis in ihrem Home-Verzeichnis (~/.docker) mit Berechtigungen erstellt wurde, die von sudo
gewährt wurden .
Es gibt zwei mögliche Lösungen:
-
Entfernen Sie die
.docker
Verzeichnis aus ihrem Home-Verzeichnis. Docker erstellt es automatisch neu, aber alle benutzerdefinierten Einstellungen gehen verloren. -
Ändern Sie die Berechtigungen für
.docker
Verzeichnis mit den Befehlen:sudo chown example_user:example_user /home/example_user/.docker -R sudo chmod g+rwx "/home/example_user/.docker" -R
Verwenden von Docker-Images zum Bereitstellen von Containern
Docker-Images sind Vorlagen, die die Anweisungen und Spezifikationen zum Erstellen eines Containers enthalten. Um Docker verwenden zu können, müssen Sie zunächst ein Image abrufen oder Ihr eigenes erstellen, indem Sie eine Docker-Datei erstellen. Weitere Informationen finden Sie unter Eine Einführung in Docker.
Bilder auflisten
Führen Sie den folgenden Befehl aus, um alle Images auf Ihrem System aufzulisten. Dies sollte hello-world ausgeben Bild, das in einem vorherigen Schritt verwendet wurde, sowie alle zusätzlichen Bilder, die Sie möglicherweise bereits erhalten haben.
docker images
Ein Bild finden
Bilder werden in Docker-Registrierungen wie Docker Hub (der offiziellen Registrierung von Docker) gespeichert. Sie können auf dieser Website nach Bildern suchen oder den folgenden Befehl verwenden, um die Docker-Registrierung zu durchsuchen. Ersetzen Sie im folgenden Befehl [keyword]
mit den Schlüsselwörtern, nach denen Sie suchen möchten, z. B. nginx oder apache .
docker search [keyword]
Ein Bild erhalten
Sobald Sie ein Bild gefunden haben, laden Sie es auf Ihren Server herunter. Ersetzen Sie im folgenden Befehl [image]
mit dem Namen des Bildes, das Sie verwenden möchten.
docker pull [image]
Um beispielsweise das offizielle Nginx-Image herunterzuladen, führen Sie Folgendes aus:docker pull nginx
.
Ein Image ausführen
Erstellen Sie als Nächstes einen Container basierend auf dem Image, indem Sie docker run
verwenden Befehl. Ersetzen Sie erneut [image]
mit dem Namen des Bildes, das Sie verwenden möchten.
docker run [image]
Wenn das Image noch nicht heruntergeladen wurde und in der Docker-Registrierung verfügbar ist, wird das Image automatisch auf Ihren Server heruntergeladen.
Verwalten von Docker-Containern
Container auflisten
Führen Sie den folgenden Befehl aus, um alle aktiven (und inaktiven) Docker-Container aufzulisten, die auf Ihrem System ausgeführt werden:
docker ps -a
Die Ausgabe sollte wie folgt aussehen. Diese Beispielausgabe zeigt hello-world
Behälter.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5039168328a5 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago magical_varahamihira
Starten eines Containers
Starten Sie einen Docker-Container mit dem folgenden Befehl und ersetzen Sie dabei [ID]
mit der Container-ID, die dem Container entspricht, den Sie starten möchten:
docker start [ID]
Stoppen eines Containers
Stoppen Sie einen Docker-Container mit dem folgenden Befehl und ersetzen Sie dabei [ID]
mit der Container-ID, die dem Container entspricht, den Sie stoppen möchten:
docker stop [ID]
Einige Bilder (wie die hello-world
image) stoppen automatisch, nachdem sie ausgeführt wurden. Viele andere Container werden jedoch weiter ausgeführt, bis sie ausdrücklich zum Stoppen aufgefordert werden, und Sie möchten diese Container möglicherweise im Hintergrund ausführen. Für diese Fälle kann dieser Befehl nützlich sein.
Entfernen eines Containers
Entfernen Sie einen Docker-Container mit dem folgenden Befehl und ersetzen Sie dabei [ID]
mit der Container-ID, die dem Container entspricht, den Sie entfernen möchten:
docker rm [ID]
Weitere Informationen
Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.
- Website für Docker
- Dokumentation für Docker
- Website für containerd