Docker installiert Verwenden Sie Docker zum ersten Mal.
Befehlszeile kann verwendet werden VSCode installiert
Im allgemeinen Docker-Lernablauf werden wir beim Erlernen des Docker-Befehls das Konzept von Bildern und Containern verstehen und dann mit dem Docker-Compose fortfahren.
In diesem Artikel werde ich die Erläuterung von Konzepten wie Bildern und Containern weglassen und die Befehle durch die Erweiterung vscode ersetzen. Auf diese Weise lernen Sie mindestens den Docker-Compose-Befehl und können ihn schnell verschieben, um Docker praktisch zu verstehen.
Sie können jetzt einige Docker-Compose-Befehle verwenden. Sie können eine Ausführungsumgebung für nodejs erstellen.
Installieren Sie dies im Voraus.
Erstellen Sie zunächst einen Ordner mit dem Namen "nodejssample" an einem geeigneten Speicherort. Dieser Name ist angemessen.
Erstellen Sie dann eine Datei mit dem Namen "docker-compose.yml" direkt unter diesem Ordner, wie unten gezeigt.
docker-compose.yml
version: "3"
services:
node:
image: node:14.10
volumes:
- .:/project
tty: true
working_dir: /project
command: bash
Dieser Inhalt wird später erklärt.
Und erstellen Sie "app.js" in derselben Hierarchie
app.js
const main = () => {
console.log("hello node!");
}
main();
OK, wenn dies passiert
Überprüfen Sie dann einmal den aktuellen Status von Docker.
Wenn Sie die Docker-Markierung auf der linken Seite von VS Code auswählen, wird der folgende Bildschirm angezeigt.
Dieser Bildschirm wird möglicherweise nicht angezeigt, wenn Docker nicht ausgeführt wird oder wenn Sie Docker aus irgendeinem Grund bereits ausgeführt haben.
Übertragen Sie den Befehl nach der Bestätigung wie folgt an die Stelle von docker-compose.yml in der Befehlszeile.
Befehl zum Starten der virtuellen Umgebung
docker-compose up -d
Dann startet der Download und der Bildschirm sieht wie folgt aus.
nodejssample $ docker-compose up -d
Creating network "nodejssample_default" with the default driver
4f250268ed6a: Pull complete1b49aa113642: Pull complete
c159512f4cc2: Pull complete8439168fd8dc: Pull complete55abbc6cc158: Pull completee5c5821cd889: Pull complete5a7679f70bad: Pull completed827e86d1182: Pull complete2484b06a6da1: Pull complete
Digest: sha256:21658666c0eabc9006b279e826e540d20e2c835507347d9c2f3f7dd5820ec9e3
Status: Downloaded newer image for node:14.10
Creating nodejssample_node_1 ... done
Der Bildschirm der Registerkarte Docker sieht folgendermaßen aus. Eine mit Docker erstellte virtuelle Umgebung wird als Container bezeichnet. Das Bild dient zum Erstellen eines Containers.
Nachdem die virtuelle Umgebung gestartet wurde, führen wir nodejs in dieser virtuellen Umgebung aus.
Klicken Sie mit der rechten Maustaste auf den Zielcontainer und drücken Sie Attack Shell. Dann erscheint der folgende Bildschirm.
Dies ist der Zustand innerhalb des Containers.
root@df80b994d93d:/project# ls
app.js docker-compose.yml
root@df80b994d93d:/project#
Dieselbe Datei wie das VS-Code-Projekt wird im Befehl ls angezeigt. Und da dies ein Container der Umgebung von nodejs ist, prüfen Sie, ob nodejs verwendet werden kann.
root@df80b994d93d:/project# node -v
v14.10.1
OK, wenn dies herauskommt
Führen Sie die vorbereitete app.js
aus.
root@df80b994d93d:/project# node app.js
hello node!
Ich konnte es ausführen.
Die virtuelle Umgebung ist schwer, wenn sie unbeaufsichtigt bleibt. Löschen Sie sie daher, wenn Sie fertig sind.
Bei Bildern wird "Docker-Compose-Up" dadurch schneller. Wenn Sie es also häufig verwenden, können Sie es verlassen.
Wenn Sie es eine Weile nicht benutzen, schalten Sie es aus.
Jetzt können Sie eine virtuelle Umgebung erstellen, Programme in der virtuellen Umgebung ausführen und die virtuelle Umgebung löschen.
Die grundlegende Syntax von Docker-Compose lautet wie folgt
docker-Syntax verfassen
version:Versionsnummer.
services:
Dienstname:
Serviceeinstellungen...
Die neueste Version ist 3 Sie können den Dienst selbst benennen. Alles ist ok.
docker-compose.yml
version: "3" #Die neueste Version ist 3
services: #Dies ist behoben
node: #Alles ist in Ordnung, aber da das Image des Knotens verwendet wird, ist der Dienstname nur Knoten.
image: node:14.10
volumes:
- .:/project
tty: true
working_dir: /project
command: bash
Es gibt viele Serviceeinstellungen, aber am besten lesen Sie die offizielle Dokumentation, um weitere Informationen zu erhalten.
Ich werde die diesmal verwendeten Einstellungselemente einzeln erläutern.
image Beschrieb das Bild für die Herstellung eines Containers.
.yml
image:Bildname:Verlinke den Namen
Der Tag-Name kann als Version angesehen werden
Es gibt verschiedene Bilder, die von Docker auf einer Site namens Docker Hub verwendet werden. Knotenbild
Dies ist das in diesem Artikel verwendete Tag
volumes Verknüpfen Sie den lokalen Ordner mit dem Containerordner.
.yml
volumes:
-Lokaler Ordnerpfad:Pfad des Containerordners
Wenn Sie dies nicht festlegen, können Sie lokal platzierte Dateien wie "app.js" nicht aus dem Container sehen.
tty
tty: true
Verhindert, dass der Container sofort nach Ausführung der durch den Befehl angegebenen Verarbeitung angehalten wird. Erforderlich beim Betreten eines Containers mit "Attach Shell".
working_dir Hier kann der Befehl immer noch ausgeführt werden. Wenn Sie "Shell anhängen" ausführen, befindet es sich auch in dem hier angegebenen Ordner.
command Verarbeitung, die ausgeführt wird, wenn der Container gestartet wird. Dieses Mal habe ich bash angegeben, also fühlt es sich an, als würde ich das Terminal öffnen und warten.
Es gibt verschiedene andere Einstellungen. Wenn Sie also einen anderen Docker-Artikel sehen und etwas finden, das Sie nicht wissen, sollten Sie die Referenz lesen.
Ein Befehl zum Lesen von "docker-compose.yml" und zum Herunterladen eines Bildes, falls erforderlich, um einen Container zu erstellen.
-d ist eine Option, um im Hintergrund zu beginnen.