In dieser 4-Artikel-Serie werden wir Docker diskutieren, ein leichtes Open-Source-Virtualisierungstool, das auf Betriebssystemebene ausgeführt wird und es Benutzern ermöglicht, Anwendungen zu erstellen, auszuführen und bereitzustellen, die in kleinen Containern gekapselt sind.
Diese Art von Linux-Containern hat sich als schnell, portabel und sicher erwiesen. Die Prozesse, die in einem Docker-Container ausgeführt werden, sind immer vom Haupthost isoliert, um Manipulationen von außen zu verhindern.
Dieses Tutorial bietet einen Ausgangspunkt für die Installation von Docker, das Erstellen und Ausführen von Docker-Containern unter CentOS / RHEL 8/7, kratzt jedoch kaum an der Oberfläche von Docker.
Schritt 1: Docker installieren und konfigurieren
1. Wenn Sie diese installiert haben, müssen Sie sie deinstallieren, bevor Sie eine neuere Docker-ce-Version installieren.
# yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2. Um die neueste Version der Docker-Engine zu installieren, müssen Sie das Docker-Repository einrichten und das Paket yum-utils installieren, um das stabile Docker-Repository auf dem System zu aktivieren.
# yum install -y yum-utils# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3. Installieren Sie nun die neuere Docker-ce-Version manuell aus dem Docker-Repository und containerd, da Red Hat aufgrund einiger Probleme die Installation von containerd.io > 1.2.0-3.el7
blockiert hat, die eine Abhängigkeit von docker-ce darstellt.
# yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm# yum install docker-ce docker-ce-cli
4. Nachdem das Docker-Paket installiert wurde, starten Sie den Daemon, überprüfen Sie seinen Status und aktivieren Sie ihn systemweit mit den folgenden Befehlen:
# systemctl start docker # systemctl status docker# systemctl enable docker
5. Führen Sie abschließend ein Container-Testabbild aus, um zu überprüfen, ob Docker ordnungsgemäß funktioniert, indem Sie den folgenden Befehl ausführen:
# docker run hello-world
Wenn Sie die folgende Meldung sehen, ist alles am richtigen Ort.
Beispielausgabe
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 bashShare 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/
6. Jetzt können Sie einige grundlegende Docker-Befehle ausführen, um Informationen zu Docker zu erhalten:
For system-wide information on Docker
# docker info
For Docker version
# docker version
7. To get a list of all available Docker commands type docker on your console.
# docker
Schritt 2: Laden Sie ein Docker-Image herunter
8. Um einen Docker-Container zu starten und auszuführen, muss zunächst ein Image von Docker Hub auf Ihrem Host heruntergeladen werden. Docker Hub bietet viele kostenlose Bilder aus seinen Repositorys.
Um beispielsweise nach einem Docker-Image zu suchen, geben Sie den folgenden Befehl ein:
# docker search ubuntu
9. Nachdem Sie sich entschieden haben, welches Image Sie basierend auf Ihren Anforderungen ausführen möchten, laden Sie es lokal herunter, indem Sie den folgenden Befehl ausführen (in diesem Fall wird ein Ubuntu-Image heruntergeladen und verwendet):
# docker pull ubuntu
10. Um alle verfügbaren Docker-Images auf Ihrem Host aufzulisten, geben Sie den folgenden Befehl ein:
# docker images
11. Wenn Sie kein Docker-Image mehr benötigen und es vom Host entfernen möchten, geben Sie den folgenden Befehl aus:
# docker rmi ubuntu
Schritt 3: Führen Sie einen Docker-Container aus
Wenn Sie einen Befehl für ein Image ausführen, erhalten Sie im Grunde einen Container. Nachdem der Befehl, der in den Container ausgeführt wird, beendet ist, stoppt der Container (Sie erhalten einen nicht laufenden oder beendeten Container). Wenn Sie einen anderen Befehl erneut in dasselbe Image ausführen, wird ein neuer Container erstellt und so weiter.
Alle erstellten Container verbleiben auf dem Host-Dateisystem, bis Sie sie mit dem Befehl docker rm
löschen.
12. Um einen Container zu erstellen und auszuführen, müssen Sie den Befehl in ein heruntergeladenes Image ausführen, in diesem Fall Ubuntu, ein grundlegender Befehl wäre also, die Verteilungsversionsdatei im Container mit dem Befehl cat anzuzeigen, wie im folgenden Beispiel:
# docker run ubuntu cat /etc/issue
Der obige Befehl ist wie folgt aufgeteilt:
# docker run
13. Um einen der Container erneut mit dem Befehl auszuführen, der zum Erstellen ausgeführt wurde, müssen Sie zuerst die Container-ID (oder den automatisch von Docker generierten Namen) abrufen, indem Sie den folgenden Befehl ausgeben, der eine Liste der laufenden und gestoppten (nicht laufenden) Container anzeigt:
# docker ps -l
14. Sobald die Container-ID erhalten wurde, können Sie den Container erneut mit dem Befehl starten, mit dem er erstellt wurde, indem Sie den folgenden Befehl ausführen:
# docker start 923a720da57f
Hier repräsentiert die Zeichenfolge 923a720da57f
die Container-ID.
15. Falls der Container ausgeführt wird, können Sie seine ID abrufen, indem Sie den Befehl docker ps
. So stoppen Sie das laufende Containerproblem docker stop
Befehl durch Angabe der Container-ID oder des automatisch generierten Namens.
# docker stop 923a720da57fOR# docker stop cool_lalande# docker ps
16. Eine elegantere Alternative, damit Sie sich nicht an die Container-ID erinnern müssen, besteht darin, jedem Container, den Sie erstellen, einen eindeutigen Namen zuzuweisen, indem Sie die Option --name
in der Befehlszeile verwenden, wie im folgenden Beispiel:
# docker run --name ubuntu20.04 ubuntu cat /etc/issue
17. Dann können Sie mit dem Namen, den Sie dem Container zugewiesen haben, den Container (start, stop, remove, top, stats) weiter bearbeiten, indem Sie einfach seinen Namen adressieren, wie in den folgenden Beispielen:
# docker start ubuntu20.04# docker stats ubuntu20.04# docker top ubuntu20.04
Beachten Sie, dass einige der oben genannten Befehle möglicherweise keine Ausgabe anzeigen, wenn der Prozess des Befehls, der zum Erstellen des Containers verwendet wurde, abgeschlossen ist. Wenn der Prozess, der im Container ausgeführt wird, beendet ist, stoppt der Container.
Schritt 4: Führen Sie eine interaktive Sitzung in einem Container aus
18. Um eine interaktive Verbindung zu einer Container-Shell-Sitzung herzustellen und Befehle wie in jeder anderen Linux-Sitzung auszuführen, geben Sie den folgenden Befehl ein:
# docker run -it ubuntu bash
Der obige Befehl ist wie folgt unterteilt:
-
-i
wird verwendet, um eine interaktive Sitzung zu starten. -
-t
weist ein TTY zu und hängt stdin und stdout an. -
ubuntu
ist das Bild, mit dem wir den Container erstellt haben. -
bash
(oder /bin/bash) ist der Befehl, den wir im Ubuntu-Container ausführen.
19. Um die laufende Container-Sitzung zu beenden und zum Host zurückzukehren, müssen Sie den Befehl exit
eingeben. Der Befehl exit beendet alle Containerprozesse und stoppt sie.
# exit
20. Wenn Sie interaktiv am Containerterminal angemeldet sind und den Container im laufenden Zustand halten, aber die interaktive Sitzung beenden müssen, können Sie die Konsole beenden und zum Hostterminal zurückkehren, indem Sie die Tasten Ctrl+p
und Ctrl+q
drücken.
21. Um sich wieder mit dem laufenden Container zu verbinden, benötigen Sie die Container-ID oder den Namen. Geben Sie den Befehl docker ps
aus, um die ID oder den Namen abzurufen, und führen Sie dann den Befehl docker attach
aus, indem Sie die Container-ID oder den Namen angeben, wie in der Abbildung oben dargestellt:
# docker attach <container id>
22. Um einen laufenden Container aus der Host-Sitzung zu stoppen, geben Sie den folgenden Befehl aus:
# docker kill <container id>
Das ist alles für die grundlegende Containermanipulation. Im nächsten Tutorial erfahren Sie, wie Sie einen Webserver in einem Docker-Container speichern, löschen und ausführen.