Event Store - Message Broker für Event Sourcing und Domain Driven Design DDD (German)
Inhaltsverzeichnis:
- Docker-Befehl ausführen
- Führen Sie den Container im Vordergrund aus
- Führen Sie den Container im getrennten Modus aus
- Entfernen Sie den Behälter nach dem Verlassen
- Legen Sie den Containernamen fest
- Container-Ports veröffentlichen
- Freigeben von Daten (Bereitstellen von Volumes)
- Führen Sie den Container interaktiv aus
- Fazit
Docker ist eine Plattform, mit der Sie Anwendungen als tragbare, autarke Container entwickeln, testen und bereitstellen können, die praktisch überall ausgeführt werden.
Der
docker run
Befehl erstellt einen Container aus einem bestimmten Image und startet den Container mit einem bestimmten Befehl. Dies ist einer der ersten Befehle, mit denen Sie sich vertraut machen sollten, wenn Sie mit Docker arbeiten.
Wir werden das offizielle Nginx-Image verwenden, um verschiedene Möglichkeiten zum Ausführen eines Docker-Containers zu zeigen.
Docker-Befehl ausführen
Der
docker run
Befehl hat die folgende Form:
docker run IMAGE
Der Name des Images, aus dem der Container erstellt werden soll, ist das einzige erforderliche Argument für den Befehl
docker run
. Wenn das Image auf dem lokalen System nicht vorhanden ist, wird es aus der Registrierung abgerufen.
Wenn kein Befehl angegeben wird, wird der in den Anweisungen
CMD
oder
ENTRYPOINT
der Docker-
ENTRYPOINT
Befehl ausgeführt, wenn der Container ausgeführt wird.
Ab Version 1.13 wurde die Docker-CLI neu strukturiert und alle Befehle wurden unter dem Objekt gruppiert, mit dem sie interagieren.
Da der Befehl
run
mit Containern interagiert, ist er jetzt ein Unterbefehl von
docker container
. Die Syntax des neuen Befehls lautet wie folgt:
docker container run IMAGE
Die alte Syntax vor 1.13 wird weiterhin unterstützt. Unter der Haube ist
docker run
Befehl
docker run
ein Alias für
docker container run
des
docker container run
. Benutzer werden aufgefordert, die neue Befehlssyntax zu verwenden.
Eine Liste aller
docker container run
finden Sie auf der Docker-Dokumentationsseite.
Führen Sie den Container im Vordergrund aus
Wenn für den
docker run
Befehl
docker run
keine Option angegeben ist, wird der Root-Prozess standardmäßig im Vordergrund gestartet. Dies bedeutet, dass die Standardeingabe, die Standardausgabe und der Standardfehler des Stammprozesses an die Terminalsitzung angehängt werden.
docker container run nginx
Die Ausgabe des Nginx-Prozesses wird auf Ihrem Terminal angezeigt. Da keine Verbindung zum Webserver besteht, ist das Terminal leer.
Um den Container zu stoppen, beenden Sie den laufenden Nginx-Prozess, indem Sie
CTRL+C
drücken.
Führen Sie den Container im getrennten Modus aus
Starten Sie den Container in einem getrennten Modus, damit er beim Beenden der Terminalsitzung weiter ausgeführt wird. Dies ähnelt dem Ausführen eines Linux-Prozesses im Hintergrund.
Verwenden Sie die Option
-d
, um einen getrennten Container zu starten:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Der getrennte Container stoppt, wenn der Root-Prozess beendet wird.
Sie können die ausgeführten Container mit dem Befehl
docker container ls
auflisten.
Verwenden Sie den Befehl
docker container attach
um Ihr Terminal an den
docker container attach
.
Entfernen Sie den Behälter nach dem Verlassen
Wenn der Container beendet wird, bleibt sein Dateisystem standardmäßig auf dem Hostsystem erhalten.
Mit
--rm
Optionen
--rm
wird
docker run
Befehl
--rm
docker run
--rm
, den Container beim automatischen
--rm
zu entfernen:
docker container run --rm nginx
Das Nginx-Image ist möglicherweise nicht das beste Beispiel, um das Dateisystem des Containers nach dem Verlassen des Containers zu bereinigen. Diese Option wird normalerweise für Vordergrundcontainer verwendet, die kurzfristige Aufgaben ausführen, z. B. Tests oder Datenbanksicherungen.
Legen Sie den Containernamen fest
In Docker wird jeder Container anhand seiner
UUID
und seines Namens identifiziert. Wenn nicht explizit festgelegt, wird der Name des Containers standardmäßig automatisch vom Docker-Daemon generiert.
Verwenden Sie die Option
--name
, um dem Container einen benutzerdefinierten Namen zuzuweisen:
docker container run -d --name my_nginx nginx
Der Containername muss eindeutig sein. Wenn Sie versuchen, einen anderen Container mit demselben Namen zu starten, wird eine ähnliche Fehlermeldung angezeigt:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Führen Sie
docker container ls -a
um alle
docker container ls -a
und deren Namen anzuzeigen:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
Die aussagekräftigen Namen sind nützlich, um auf den Container innerhalb eines Docker-Netzwerks oder beim Ausführen von Docker-CLI-Befehlen zu verweisen.
Container-Ports veröffentlichen
Wenn keine Ports veröffentlicht sind, kann standardmäßig nur von innerhalb des Containers auf den im Container ausgeführten Prozess zugegriffen werden.
Beim Veröffentlichen von Ports werden Container-Ports den Ports des Host-Computers zugeordnet, sodass die Ports für Dienste außerhalb von Docker verfügbar sind.
Verwenden Sie zum Veröffentlichen eines Ports die Optionen
-p
wie folgt:
-p host_ip:host_port:container_port/protocol
- Wenn kein
host_ipangegeben wird, wird standardmäßig 0.0.0.0protocolWenn keinprotocolangegeben wird, wird standardmäßig TCP verwendet. Verwenden Sie zum Veröffentlichen mehrerer Ports mehrere-pOptionen.
Um den TCP-Port 80 (nginx) im Container dem Port 8080 auf der Host-Localhost-Schnittstelle zuzuordnen, führen Sie Folgendes aus:
docker container run --name web_server -d -p 8080:80 nginx
Sie können überprüfen, ob der Port veröffentlicht wurde, indem Sie in Ihrem Browser
http://localhost:8080
öffnen oder auf dem Docker-Host den folgenden Befehl
curl
ausführen:
curl -I
Die Ausgabe sieht ungefähr so aus:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Freigeben von Daten (Bereitstellen von Volumes)
Wenn ein Container angehalten wird, werden alle vom Container generierten Daten entfernt. Docker-Volumes sind die bevorzugte Methode, um die Daten dauerhaft zu speichern und für mehrere Container freizugeben.
Verwenden Sie zum Erstellen und Verwalten von Volumes die Optionen
-p
wie folgt:
-v host_src:container_dest:options
- Der
host_srckann ein absoluter Pfad zu einer Datei oder einem Verzeichnis auf dem Host oder einem benannten Volume sein. Dercontainer_destist ein absoluter Pfad zu einer Datei oder einem Verzeichnis auf dem Container). Wenn keine Option angegeben ist, wird standardmäßigrw.
Um zu erklären, wie dies funktioniert, erstellen wir ein Verzeichnis auf dem Host und
index.html
eine
index.html
Datei hinzu:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
public_html
Nächstes das
public_html
in
/usr/share/nginx/html
im Container ein:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Anstatt den absoluten Pfad zum
public_html
anzugeben, verwenden wir den Befehl
$(pwd)
, der das aktuelle Arbeitsverzeichnis ausgibt.
Wenn Sie nun
http://localhost:8080
in Ihren Browser
index.html
, sollten Sie den Inhalt der Datei
index.html
. Sie können auch
curl
:
curl
Führen Sie den Container interaktiv aus
Verwenden Sie bei interaktiven Prozessen wie
bash
die Optionen
-i
und
-t
, um den Container zu starten.
Die Option
-it
weist Docker an, die Standardeingabe an das Terminal anzuhängen und eine Pseudotty zuzuweisen:
docker container run -it nginx /bin/bash
Die Bash-Shell des Containers wird an das Terminal angehängt und die Eingabeaufforderung ändert sich:
root@1da70f1937f5:/#
Jetzt können Sie mit der Shell des Containers interagieren und einen beliebigen Befehl ausführen.
In diesem Beispiel haben wir einen Befehl (
/bin/bash
) als Argument für den
docker run
, der anstelle des in der Docker-Datei angegebenen Befehls ausgeführt wurde.
Fazit
Docker ist der Standard für das Packen und Bereitstellen von Anwendungen und eine wesentliche Komponente von CI / CD, Automatisierung und DevOps.
Mit dem Befehl
docker container run
run werden Docker-Container erstellt und ausgeführt.
Der Math-Eingabebereich verwendet den in Windows 7 integrierten mathematischen Erkenner, um handschriftliche mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden. Der Math-Eingabebereich ist für die Verwendung mit einem Tablet-Stift auf einem Tablet PC vorgesehen, Sie können ihn jedoch mit jedem Eingabegerät wie einem Touchscreen oder sogar einer Maus verwenden.
Der Math-Eingabebereich verwendet den in Windows integrierten Mathematik-Erkenner 7 um handgeschriebene mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden.
Wie man Docker-Images mit Dockerfile erstellt
Ein Docker-Image ist die Blaupause der Docker-Container, die die Anwendung und alles enthalten, was Sie zum Ausführen der Anwendung benötigen. In diesem Tutorial werden wir erklären, was Dockerfile ist, wie man ein Docker-Image erstellt und wie man ein Docker-Image mit Dockerfile erstellt.
Herstellen einer Verbindung mit einem Docker-Container
Das Herstellen einer Verbindung zu einem laufenden Docker-Container ist hilfreich, wenn Sie sehen möchten, was im Container geschieht. In diesem Lernprogramm wird erläutert, wie Sie eine Verbindung zum Hauptausführungsprozess des Containers herstellen und eine Shell zu einem ausgeführten Container erstellen.







