Dieser Artikel informiert Sie über die Verwendung von Containern in Docker. Ich hoffe, er wird Ihnen hilfreich sein.
Führen Sie einen Container aus
Wenn Sie ein vorhandenes Image finden möchten, können Sie im öffentlichen Docker Hub suchen, wo Sie dessen Einführung und Verwendung finden, genau wie bei der Suche nach einer Open Source auf GitHub Projects sind gleich.
Wenn Sie Docker Hub zum ersten Mal verwenden, können Sie zunächst ein Konto registrieren und im oberen Suchfeld „Ubuntu“ eingeben. Klicken Sie darauf, um die obige Abbildungsseite anzuzeigen .
Diese Seite enthält einige grundlegende Informationen und eine Einführung in die Verwendung des Bildes. Der Docker-Pull-Ubuntu-Befehl auf der rechten Seite wird verwendet, um das Bild lokal abzurufen. Wie im vorherigen Artikel erwähnt, wird Docker beim Instanziieren eines Containers das angegebene Image automatisch abrufen. Daher können wir es direkt lokal ausführen:
docker run -i -t ubuntu /bin/bash
Dieser Befehl ist schneller als das vorherige Beispiel last time hat einige zusätzliche Parameter, die im Folgenden erläutert werden:
-i kann sicherstellen, dass STDIN im Container aktiviert ist
-t weist dem Container ein Pseudo-TTY-Terminal zu
ubuntu ist Der Name des Bildes entspricht hello-world
/bin/bash im vorherigen Beispiel und ist der Befehl, der nach dem Start im Container ausgeführt werden soll
Die beiden Parameter -i und -t können erstellt werden Danach können wir den Container ausführen. Wenn der Container erstellt wird, führt Docker den Befehl /bin/bash im Container aus. Nachdem der Container ausgeführt wurde, wird unser Terminal an den Container angehängt:
Zu diesem Zeitpunkt können Sie ein Terminal öffnen und geben Sie den Docker-Befehl ps ein, um den gestarteten Container anzuzeigen. Die Ergebnisse lauten wie folgt:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 402c5d3468d7 ubuntu "/bin/bash" 4 hours ago Up 4 hours reverent_wu
Hier werden die ID, das Bild, der zuletzt ausgeführte Befehl, die Erstellungszeit, der Status und der Name des Containers angezeigt. Der Name reverent_wu wird hier automatisch von Docker generiert. Wenn Sie beim Erstellen des Containers einen Namen angeben müssen, können Sie den Container mit --name benennen.
Tief im Container
Im aktuellen Zustand können wir jeden vom Ubuntu-System unterstützten Befehl im an den Container angeschlossenen Terminal ausführen. Geben Sie beispielsweise den Befehl hostname ein und stellen Sie fest, dass der Hostname des Containers seine Container-ID ist.
Als nächstes können Sie einen Blick auf die Datei /etc/hosts werfen:
root@402c5d3468d7:/# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 402c5d3468d7
Sie können auch versuchen, den Prozess im Container selbst anzuzeigen, oder sogar apt-get verwenden, um das Paket zu installieren.
Schließlich können Sie den Exit-Befehl eingeben, um den Container zu starten und zur Eingabeaufforderung des Hosts zurückzukehren. Beachten Sie, dass Sie beim Ausführen von Docker PS zu diesem Zeitpunkt feststellen, dass der gerade erstellte Ubuntu-Container nicht mehr in der Containerliste enthalten ist.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Wenn wir aussteigen, hört der Container auf zu laufen. Der Container wurde jedoch nicht gelöscht. Sie können den Befehl docker ps -a verwenden, um alle erstellten Container anzuzeigen, unabhängig davon, ob der Container gestartet ist oder nicht:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 402c5d3468d7 ubuntu "/bin/bash" 4 hours ago Exited (0) 2 minutes ago reverent_wu
Zu diesem Zeitpunkt ändert sich sein Status in „Beendet (0) vor 2 Minuten“. , was darauf hinweist, dass es vor 2 Minuten gestartet wurde. Der Exit-Statuscode ist 0, was auf einen normalen Exit hinweist.
Wir können diesen Container mit dem folgenden Befehl neu starten:
docker start 402c5d3468d7
In diesem Befehl folgt auf docker start die ID des Containers, oder es kann auch der Name des Containers verwendet werden. Nach erfolgreicher Ausführung können Sie über den Befehl docker ps sehen, dass sich der Container im Startzustand befindet. Nach dem Neustart des Containers über den Befehl docker run werden die vom Befehl docker run angegebenen Parameter verwendet Beim Start wird /bin/bash ausgeführt, um eine Shell zu starten, aber wir haben die Befehlszeile des Containers nicht eingegeben. Sie können den Docker-Attach-Befehl erneut eingeben:
docker attach 402c5d3468d7
Zu diesem Zeitpunkt können Sie weiterhin Befehle im Container ausführen.
Wenn ein Container nicht mehr verwendet wird, können Sie ihn mit dem Docker-RM-Befehl löschen.
docker rm 402c5d3468d7
Bereitstellung kontinuierlicher Dienste
Häufiger verwenden wir Container, um Anwendungen und Dienste auszuführen, und hoffen, dass sie weiterhin Dienste im Hintergrund bereitstellen. Zu diesem Zeitpunkt müssen wir den getrennten Modus (oder Daemon) verwenden Modus), um den Container auszuführen. Fügen Sie nach der Docker-Ausführung einfach einen -d-Parameter hinzu, damit der Container im Hintergrund ausgeführt werden kann.
Als nächstes führen wir einen Container erneut mit dem folgenden Befehl aus:
docker run --name detached_mode -d ubuntu /bin/sh -c "while true; do echo Docker YYDS; sleep 1; done"
Dieses Mal rufen wir den Container tached_mode auf, übergeben -d, um ihn im getrennten Modus laufen zu lassen, und führen alle 1 Sekunde ein Skript aus. Drucken Sie eine Zeile Docker YYDS .
Da es im separaten Modus ausgeführt wird, können wir den gedruckten Inhalt nach dem Start nicht in der Befehlszeile sehen. Sie können jedoch sehen, wie der Container über den Befehl docker ps ausgeführt wird.
Wenn Sie die Ausführung stoppen möchten, können Sie den Docker-Stopp-Befehl verwenden.
docker stop detached_mode
Sie können es auch über den Docker-Startbefehl erneut starten oder den laufenden Container über den Docker-Neustart neu starten.
Der Betriebsstatus des Containers
在 detached_mode 容器运行的时候,可以通过 docker logs 命令获取容器的日志。也可以增加 -f 来持续监控日志,类似于 tail -f 命令。
docker logs -f detached_mode
此时就可以看到一直有 Docker YYDS 被打印。
除了监控容器的日志,也可以使用 docker top 命令,查看容器内的进程。
docker top detached_mode
使用 docker stats 命令,可以查看容器的CPU、内存、网络I/O、存储I/O的性能和指标。
另外,docker exec 命令可以在容器内部运行进程。
docker exec detached_mode cat /etc/hosts
以上命令可以让我们直接查看容器中的 hosts 文件的内容,如果需要运行一个后台进程,在指令后面增加 -d 参数就可以了。
容器的详细信息
使用 docker inspect 命令可以查看容器的详细信息,其结果是一个 JSON 结构,包含的信息非常丰富。可以通过 -f 或者 --format 来选定想要查看的部分。
docker inspect --format '{{ .NetworkSettings.IPAddress }}' detached_mode
执行以上的命令,只会在命令行展示容器的 IP 地址。
推荐学习:《docker视频教程》
Das obige ist der detaillierte Inhalt vonBeherrschen Sie die Verwendung von Docker-Lerncontainern vollständig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!