Wie führe ich eine Docker-Instanz aus einer Docker-Datei aus?

Wie Fuhre Ich Eine Docker Instanz Aus Einer Docker Datei Aus



Docker ist eine beliebte offene Plattform, die universell zum Erstellen, Testen, Bereitstellen und Versenden von Anwendungen in einer Containerumgebung verwendet wird. Docker nutzt die Betriebssystemebene der Virtualisierung und unterstützt verschiedene Komponenten wie Docker-Container, Images, Netzwerke und Docker-Volumes.

Die Docker-Container sind eine der wesentlichen Komponenten der Docker-Plattform, die das Programm, Konfigurationseinstellungen und Abhängigkeiten mithilfe des Docker-Images verpackt. Das Docker-Image ist eine einfache Vorlage oder ein Snapshot eines Containers, der den Container bei der Containerisierung einer Anwendung anleitet. Diese Bilder sind größtenteils in der offiziellen Docker-Hub-Registrierung verfügbar. Benutzer können diese Bilder auch mithilfe von Dockerfile entsprechend den Projektanforderungen entwerfen.

Dieser Blog erklärt:







Was ist eine Docker-Datei?

Eine Docker-Datei ist eine normale Textdatei, die Befehle und Anweisungen enthält, die die Grundstruktur eines Docker-Containers definieren. Diese Anweisungen können im Terminal ohne Datei ausgeführt werden, aber jeden Befehl einzeln auszuführen, ist eine hektische und komplexe Aufgabe. Mit Dockerfile können Entwickler ganz einfach alle Anforderungen und Anweisungen in einer Datei spezifizieren. Diese Datei wird dann zum Erstellen der Containervorlage verwendet, bei der es sich um ein Docker-Image handelt. Anschließend wird das Docker-Image ausgeführt, um die Instanz im Docker-Container zu starten.



Grundlegende Befehle von Dockerfile

Einige grundlegende Befehle von Dockerfile, die zum Definieren des grundlegenden Snapshots des Containers verwendet werden, sind unten in tabellarischer Form aufgeführt:



Befehle Beschreibung
AUS Der ' AUS Der Befehl „wird verwendet, um das Basisbild für die Containervorlage zu definieren. Diese Bilder werden aus der offiziellen Docker-Registrierung Docker Hub abgerufen.
WARTER Der ' WARTER Der Befehl definiert die Informationen zum Autor (Name und E-Mail), der das Docker-Image erstellt.
ARBEITSVERZEICHNIS Es gibt das Arbeitsverzeichnis einer Containeranwendung an.
KOPIEREN Wird verwendet, um die Quell- und Konfigurationsdateien vom Hostsystem in den angegebenen Pfad des Docker-Containers zu kopieren.
HINZUFÜGEN Der ' HINZUFÜGEN Der Befehl ähnelt dem Befehl „ KOPIEREN ”-Befehl, unterstützt aber auch die Remote-URL, um die Datei von der URL zum Containerpfad hinzuzufügen, beispielsweise vom GitHub-Repository zum Containerpfad.
LAUFEN Der ' LAUFEN „wird verwendet, um die Befehle im Container auszuführen. In Dockerfile wird es hauptsächlich zum Verwalten und Installieren zusätzlicher Abhängigkeiten im Container verwendet.
CMD CMD „definiert die Standardpunkte von Docker-Containern. Es definiert im Wesentlichen die ausführbaren Dateien und Standardparameter des „ EINSTIEGSPUNKT “.
EINSTIEGSPUNKT Der ' EINSTIEGSPUNKT Der Befehl „wird auch verwendet, um die ausführbaren Dateien des Docker-Containers festzulegen. Grundsätzlich werden die Standardanwendungen festgelegt, die jedes Mal in einem Container verwendet werden. Der ENTRYPOINT-Befehl wird auch einmal in einer Docker-Datei verwendet.
BENUTZER Mit diesem Befehl wird die UID (Benutzername) zum Ausführen der Befehle im Container festgelegt
VOLUMEN Der ' VOLUMEN Der Befehl „wird verwendet, um das externe Volume (Dateisystem) mit einem Container zu verbinden oder zu mounten.
ENV Der ' ENV Der Befehl „wird verwendet, um die Umgebungsvariablen des Containers festzulegen.
ARG Der ' ARG „wird verwendet, um die Argumente innerhalb des Containers zu übergeben.
EXPONIEREN Der ' EXPONIEREN Der Befehl gibt die verfügbaren Ports an, auf denen der Container ausgeführt wird.
ONBUILD Es liest Anweisungen vom Basis-Image, löst diese Anweisungen jedoch über das Downstream-Image aus.
ETIKETT Der ' ETIKETT „wird verwendet, um die Metadaten des Container-Snapshots anzugeben.

Wie führe ich eine Docker-Instanz aus einer Docker-Datei in Docker aus?

Um eine Docker-Instanz oder einen Docker-Container mit Dockerfile auszuführen, erstellen Sie zunächst eine Dockerfile. Erstellen Sie dann mit Dockerfile den grundlegenden Snapshot für den Container. Führen Sie anschließend den Snapshot aus, um die Docker-Instanz zu starten.





Befolgen Sie zur Veranschaulichung die folgenden Anweisungen.

Schritt 1: Erstellen Sie eine Docker-Datei

Erstellen Sie zunächst eine Docker-Datei. Denken Sie daran, dass Dockerfile keine Dateierweiterung hat. Fügen Sie anschließend die folgenden Befehle in die Datei ein:



VON golang: 1.8

ARBEITSVERZEICHNIS / gehen / src / App

KOPIEREN Sie main.go .

LAUF, geh bauen Webserver.

EXPONIEREN 8080 : 8080

EINSTIEGSPUNKT [ './webserver' ]

Schritt 2: Programmdatei erstellen

Als nächstes erstellen Sie eine neue Datei mit dem Namen „ main.go ”, das das einfache Golang-Programm enthält. Fügen Sie dazu das folgende Programm in die Datei ein:

Paket main
importieren (
„fmt“
'Protokoll'
„net/http“
)

Funktionshandler ( In http.ResponseWriter, r * http.Anfrage ) {
fmt.Fprintf ( In , „Hallo! Willkommen beim LinuxHint-Tutorial“ )
}
Funktion main ( ) {
http.HandleFunc ( „/“ , Handler )
log.Fatal ( http.ListenAndServe ( „0.0.0.0:8080“ , null ) )
}

Schritt 3: Container-Snapshot erstellen

Erstellen Sie nun den Docker-Snapshot des Containers mit „ docker build -t -f . ”:

Docker-Build -T go-img -F Docker-Datei.

Im obigen Befehl ist das „ -T „Option legt den Namen oder Tag des Bildes fest, „ -F Die Option „gibt den Pfad zur Docker-Datei an, aus der die Docker-Engine den Build-Kontext lesen muss:

Um zu überprüfen, ob das Image erfolgreich erstellt wurde oder nicht, führen Sie den Befehl „ Docker-Bilder ' Befehl:

Docker-Bilder go-img

Die Ausgabe zeigt, dass wir den Snapshot des Containers erfolgreich aus der Docker-Datei erstellt haben:

Schritt 4: Führen Sie den Snapshot aus, um den Container zu starten

Starten Sie nun die Docker-Instanz im Docker-Container, indem Sie den im obigen Schritt erstellten Container-Snapshot ausführen:

Docker-Lauf -P 8080 : 8080 --Name go-cont -D go-img

Im obigen Befehl ist das „ -P ”-Option führt den Container auf der „ 8080 ' Hafen, ' -Name „ legt den Namen des Containers fest und das „ -D Die Option „Führt den Container im getrennten Modus aus (Hintergrunddienst):

Um zu überprüfen, ob der Container ausgeführt wird oder nicht, listen Sie die ausgeführten Container mit dem Befehl „ auf. Docker PS ' Befehl:

Docker PS

Navigieren Sie nun zu „ http://localhost:8080 ” und überprüfen Sie, ob die Anwendung auf dem offengelegten Port ausgeführt wird oder nicht:

Die obige Ausgabe zeigt, dass wir die Docker-Instanz effektiv mit Dockerfile gestartet haben.

Wie führe ich eine Instanz aus einer Docker-Datei in Docker Compose aus?

Docker Compose ist ein weiteres wichtiges Plugin der Docker-Plattform, das es uns ermöglicht, mehrere Instanzen in verschiedenen Containern gleichzeitig auszuführen. Benutzer können die Docker-Instanz auch über Dockerfile mit dem Docker-Compose-Plugin ausführen. Befolgen Sie zur Veranschaulichung die angegebenen Schritte.

Schritt 1: Docker-Datei erstellen

Erstellen Sie zunächst eine Docker-Datei. Beispielsweise verwenden wir dieselbe Docker-Datei und dieselbe Programmdatei wie im obigen Abschnitt:

VON golang: 1.8

ARBEITSVERZEICHNIS / gehen / src / App

KOPIEREN Sie main.go .

LAUF, geh bauen Webserver.

EXPONIEREN 8080 : 8080

EINSTIEGSPUNKT [ './webserver' ]

Schritt 2: Erstellen Sie die Datei docker-compose.yml

Als nächstes erstellen Sie ein „ docker-compose.yml ”-Datei und kopieren Sie die folgenden Schlüsselpaare in die Datei:

Ausführung: '3'

Dienstleistungen:

Netz:
bauen: .
Häfen:
- 8080 : 8080

Im oben erwähnten Ausschnitt:

  • Dienstleistungen „wird verwendet, um die Erstellungsdienste anzugeben, die in einem separaten Container ausgeführt werden. Zur Veranschaulichung haben wir nur einen Dienst konfiguriert „ Netz ”um den Code sauber und einfach zu halten.
  • bauen Das Schlüsselpaar „wird verwendet, um den Build-Kontext aus der Docker-Datei zu lesen. Hier liest Docker die Anweisungen aus der Docker-Datei und erstellt den Container entsprechend.
  • Häfen Der Schlüssel „definiert die verfügbaren Ports, auf denen der Container ausgeführt wird.

Schritt 3: Starten Sie die Docker-Instanz

Führen Sie nun die Docker-Instanz in einem Container aus, indem Sie „ Docker-Komponieren ' Befehl:

Docker-Komponieren -D

Überprüfen Sie zur Überprüfung die Liste der ausgeführten Compose-Container mithilfe des „ Docker-Compose ps ' Befehl:

Docker-Compose PS

Die Ausgabe zeigt, dass „ Netz Der Dienst wird erfolgreich ausgeführt im „ golangapp-web-1 ”Behälter:

Navigieren Sie zum verfügbaren Port des Compose-Dienstes und überprüfen Sie, ob das Programm ausgeführt wird oder nicht. Das folgende Ergebnis zeigt, dass wir die Docker-Instanz erfolgreich aus Dockerfile mit Docker Compose gestartet haben:

Dabei geht es darum, eine Docker-Instanz aus einer Docker-Datei auszuführen.

Abschluss

Um eine Docker-Instanz in einem Container aus einer Docker-Datei auszuführen, erstellen Sie zunächst eine Docker-Datei. Fügen Sie die Befehle in die Datei ein, um das Image oder die Vorlage des Docker-Containers zu erstellen. Erstellen Sie dann das Container-Image oder den Snapshot mit „ docker build -t -f . ' Befehl. Führen Sie nun das Container-Image aus, um die Docker-Instanz zu starten. Benutzer können Docker Compose auch verwenden, um die Docker-Instanz aus Dockerfile auszuführen. In diesem Beitrag wurde veranschaulicht, wie eine Docker-Instanz aus einer Docker-Datei ausgeführt wird.