Docker

Wie Dockerfile funktioniert?

Wie Dockerfile funktioniert?
Sie können mit Hilfe des Docker-Images nur einen einzelnen Container bereitstellen. Wenn Sie jedoch mehrere Container (jeweils für unterschiedliche Aufgaben) aus demselben Image bereitstellen müssen, was passiert dann?? Sie können dies mit Hilfe des Dockerfiles beheben.

Dockerfile ist eine einfache Textdatei, die alle Befehle enthält, die der Benutzer über die Befehlszeile aufrufen kann, um ein Image zusammenzustellen oder zu erstellen. Mit Hilfe von Docker Build können Sie ganz einfach Builds automatisieren, bei denen mehrere Befehle nacheinander in der Dockerfile-Definition ausgeführt werden.

Sie möchten beispielsweise das Docker-Image für Ihre spezifischen Entwicklungsanforderungen vom Docker-Hub herunterladen. Dann möchten Sie das Image aktualisieren, einige Pakete für Ihren Entwicklungsprozess installieren. In diesem Fall können Sie eine Dockerdatei erstellen, alle Parameter für Ihre spezifischen Anforderungen einschließen und Ihr benutzerdefiniertes Image erstellen. Nachdem Sie ein Dockerfile erstellt haben, können Sie es immer wieder verwenden, um dasselbe Image zu erstellen, ohne alle erforderlichen Pakete für Ihren Entwicklungsprozess manuell zu installieren.

Dockerfile Basic

Bevor Sie mit Dockerfile arbeiten, ist es wichtig zu wissen, wie man ein Dockerfile erstellt. Dockerfile enthält bestimmte Schlüsselwörter, die verwendet werden können, um ein bestimmtes Image zu erstellen. Eine kurze Erläuterung aller Schlüsselwörter, die in einer Dockerdatei verwendet werden, sind unten aufgeführt:

Dockerfile erstellen

In diesem Abschnitt erstellen wir eine Dockerdatei, um ein LAMP-Server-Image aus dem Ubuntu-Basisimage zu erstellen.

Zuerst müssen Sie ein Verzeichnis erstellen, um die Dockerdatei zu speichern. Sie können es mit dem folgenden Befehl erstellen:

mkdir LAMPE

Erstellen Sie als Nächstes ein Verzeichnis namens Dockerfile innerhalb des Verzeichnisses:

nano LAMP/Dockerfile

Fügen Sie die folgenden Zeilen hinzu:

VON Ubuntu: neuestes
MAINTAINER Hitesh Jethva
ENV DEBIAN_FRONTEND=nicht interaktiv
RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl","-D","VORGRUND"]
AUSSETZEN 8080

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Image mit Dockerfile erstellen

Nach dem Erstellen des Dockerfiles können Sie mit Hilfe des Dockerfiles ganz einfach ein benutzerdefiniertes LAMP-Image erstellen.

Ändern Sie zunächst das Verzeichnis in LAMP und führen Sie den folgenden Befehl aus, um das Image aus dieser Datei zu erstellen:

CD-LAMPE
docker build -t "lamp:Dockerfile".

Der obige Befehl startet den Download des neuesten Ubuntu-Images vom Docker Hub und installiert die erforderlichen Pakete, die in der Dockerfile angegeben sind. Nachdem das Image erfolgreich erstellt wurde, sollten Sie die folgende Ausgabe sehen:

Build-Kontext an Docker-Daemon 2 senden.048kB
Schritt 1/6: VON ubuntu:latest
neuestes: Ziehen aus Bibliothek/Ubuntu
54ee1f796a1e: Ziehen abgeschlossen
f7bfea53ad12: Ziehen abgeschlossen
46d371e02073: Ziehen abgeschlossen
b66c17bbf772: Ziehen abgeschlossen
Zusammenfassung: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Neueres Image für ubuntu:latest . heruntergeladen
---> 4e2eef94cd6b
Schritt 2/6: MAINTAINER Hitesh Jethva
---> Einlaufen in 047977af2c2a
Zwischenbehälter ausbauen 047977af2c2a
---> 1331df625c4c
Schritt 3/6: ENV DEBIAN_FRONTEND=nicht interaktiv
---> Einlaufen in 3597152c7a1b
Zwischenbehälter entfernen 3597152c7a1b
---> 86c82c95e75d
Schritt 4/6: RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Zwischenbehälter entfernen 322532299fd9
---> f6897a9554f7
Schritt 5/6: CMD ["apachectl","-D","FOREGROUND"]
---> Einlaufen in 669635bc8bcb
Zwischenbehälter ausbauen 669635bc8bcb
---> e8400eb2e677
Schritt 6/6: 8080 EXP AUSSETZEN
---> Laufen in 937ae2b2d305
Zwischenbehälter entfernen 937ae2b2d305
---> 2123a857361d
Erfolgreich gebaut 2123a857361d
Erfolgreich getaggt Lampe:Dockerfile

Sie können jetzt Ihr neu erstelltes Image auflisten, indem Sie den folgenden Befehl ausführen:

Docker-Bilder

Sie sollten die folgende Ausgabe sehen:

REPOSITORY-TAG BILD-ID ERSTELLTE GRÖSSE
Lampe Dockerfile 2123a857361d vor 44 Sekunden 520MB
ubuntu neueste 4e2eef94cd6b vor 8 Tagen 73.9 MB

Jetzt haben Sie ein benutzerdefiniertes LAMP-Server-Image in der Hand. Sie können den Verlauf jedes Befehls auch mit dem folgenden Befehl anzeigen:

Docker-History-Lampe: Dockerfile

Sie sollten die folgende Ausgabe sehen:

BILD ERSTELLT ERSTELLT NACH GRÖSSE KOMMENTAR
2123a857361d vor 16 Minuten /bin/sh -c #(nop) EXPOSE 8080 0B
e8400eb2e677 vor 16 Minuten /bin/sh -c #(nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 Vor 16 Minuten /bin/sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d vor 17 Minuten /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=nonin… 0B
1331df625c4c vor 17 Minuten /bin/sh -c #(nop) MAINTAINER Hitesh Jethva 0B
4e2eef94cd6b vor 8 Tagen /bin/sh -c #(nop) CMD ["/bin/bash"] 0B

Erstellen eines Containers aus einem LAMP-Image

Jetzt können Sie mit dem folgenden Befehl einen Container von Ihrem Image ausführen:

docker run -dit lamp:Dockerfile

Nachdem der Container gestartet wurde, sollten Sie die folgende Ausgabe sehen:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Sie können den laufenden Container mit dem folgenden Befehl überprüfen:

Docker ps

Sie sollten die folgende Ausgabe erhalten:

CONTAINER ID BILDBEFEHL ERSTELLTER STATUS PORT NAMEN
c14794784eb2 lamp:Dockerfile "apachectl -D FOREGR… " vor 2 Minuten Nach oben 2 Minuten 0.0.0.0:8080->8080/tcp quirky_ramanujan

Fazit

In dieser Anleitung haben Sie gelernt, was Dockerfile ist und wie Sie mit Dockerfile ein Docker-Image erstellen. Dies ist sehr nützlich, um Ihre benutzerdefinierten Bilder zu erstellen, anstatt Änderungen an einem abgerufenen Bild vorzunehmen.

So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...