So erstellen und konfigurieren Sie benutzerdefinierte Docker -Bilder automatisch mit Dockerfile - Teil 3

So erstellen und konfigurieren Sie benutzerdefinierte Docker -Bilder automatisch mit Dockerfile - Teil 3

Dieses Tutorial konzentriert sich darauf, wie ein benutzerdefiniertes Docker -Bild basierend auf erstellt wird Ubuntu mit Apache Service installiert. Der gesamte Vorgang wird mit a automatisiert Dockerfile.

Docker -Bilder können automatisch aus Textdateien erstellt werden, benannt Dockerfiles. Eine Docker-Datei enthält schrittweise bestellte Anweisungen oder Befehle, die zum Erstellen und Konfigurieren eines Docker-Bildes verwendet werden.

Anforderungen

  • Installieren Sie Docker und lernen Sie Docker Container Manipulation - Teil 1
  • Bereitstellung und Ausführen von Anwendungen unter Docker -Containern - Teil 2

Grundsätzlich enthält eine Docker -Datei verschiedene Anweisungen, um einen bestimmten Container basierend auf Ihren Anforderungen zu erstellen und zu konfigurieren. Die folgenden Anweisungen sind die am häufigsten verwendeten, von denen einige obligatorisch sind:

  1. AUS = Obligatorisch als erste Anweisung in einer Docker -Datei. Weisen Sie Docker an, das Grundbild zu ziehen, aus dem Sie das neue Bild erstellen. Verwenden Sie ein Tag, um das genaue Bild anzugeben, aus dem Sie erstellen:
Ex: von Ubuntu: 20.04 
  1. Betreuer = Autor des Build -Bildes
  2. LAUFEN = Diese Anweisung kann in mehreren Zeilen verwendet werden und werden alle Befehle ausgeführt, nachdem ein Docker -Bild erstellt wurde.
  3. CMD = Führen Sie einen Befehl aus, wenn das Docker -Bild gestartet wird. Verwenden Sie nur eine CMD -Anweisung in einer Dockerfile.
  4. EINSTIEGSPUNKT = Gleich wie CMD, aber als Hauptbefehl für das Bild verwendet.
  5. EXPONIEREN = Weist den Container an, beim Ausführen Netzwerkports anzuhören. Die Containerports sind standardmäßig nicht vom Host erreichbar.
  6. Env = Variablen der Containerumgebung einstellen.
  7. HINZUFÜGEN = Ressourcen kopieren (Dateien, Verzeichnisse oder Dateien aus URLs).

Schritt 1: Erstellen oder Schreiben von Dockerfile -Repository

1. Lassen Sie uns zunächst eine Art erstellen Dockerfile Repositorys, um Dateien in Zukunft wieder zuverwenden, um andere Bilder zu erstellen. Machen Sie irgendwo ein leeres Verzeichnis in /var Partition, wo wir die Datei mit den Anweisungen erstellen, mit denen das neu Docker -Bild erstellt wird.

# Mkdir -p/var/docker/ubuntu/apache # touch/var/docker/ubuntu/apache/dockerfile 
Erstellen Sie ein Dockerfile -Repository

2. Bearbeiten Sie die Datei als nächstes mit den folgenden Anweisungen:

# vi/var/docker/ubuntu/apache/dockerfile 

Dokerfileauszug:

Von ubuntu staarter your_name <[email protected]> Führen Sie APT -GET -y aus apache2 aus. Führen Sie Echo "Hallo Apache -Server auf Ubuntu Docker">/var/www/html/index aus ".HTML Expose 80 cmd/usr/sbin/apache2ctl -d Vordergrund 
DockerFile Repository

Gehen wir nun die Dateianweisungen durch:

Die erste Zeile sagt uns, dass wir aus einem bauen Ubuntu Bild. Wenn kein Tag eingereicht wird, sagen wir 14:10 Zum Beispiel das neueste Bild von Docker Hub wird eingesetzt.

In der zweiten Zeile haben wir das hinzugefügt Name Und Email des Bildschöpfers. Nächste zwei LAUFEN Linien werden beim Erstellen des Bildes im Container ausgeführt und werden installiert Apache Dämon und Echo Einige Text in der Standard -Apache -Webseite.

Der EXPONIEREN Linie wird anweisen der Docker Container zum Anhören auf Port 80, Aber der Hafen wird außerhalb von außen nicht verfügbar sein. Die letzte Zeile weist den Container an, den Apache -Dienst im Vordergrund nach dem Start des Containers auszuführen.

3. Das Letzte, was wir tun müssen, ist, das Bild zu erstellen, indem wir den folgenden Befehl ausgeben, das lokal ein neues Docker -Bild namens erstellt Ubuntu-Apache Basierend auf der zuvor erstellten Dockerfile, wie in diesem Beispiel gezeigt:

# Docker Build -t Ubuntu -Apache/var/docker/ubuntu/apache/ 
Erstellen Sie das Docker -Bild

4. Nachdem das Bild von erstellt wurde von Docker, Sie können alle verfügbaren Bilder auflisten und Ihr Bild identifizieren, indem Sie den folgenden Befehl ausgeben:

# Docker -Bilder 
Listen Sie alle Docker -Bilder auf

Schritt 2: Führen Sie den Container aus und greifen Sie von LAN aus auf Apache zu

5. Um den Container kontinuierlich (im Hintergrund) auszuführen und auf die Container Exponed Services (Ports) vom Host oder einer anderen Remote -Maschine in Ihrem LAN zuzugreifen, führen Sie den folgenden Befehl in Ihrer Eingabeaufforderung für Host -Terminal aus:

# Docker Run -d -p 81:80 Ubuntu -Apache 
Führen Sie das Docker -Containerbild aus

Hier das -D Option fährt das aus Ubuntu-Apache Container im Hintergrund (als Daemon) und der -P Option ordnet den Containeranschluss ab 80 zu Ihrem örtlichen Anschluss 81. Außerhalb von LAN -Zugriff auf den Apache -Dienst kann über Port erreicht werden 81 nur.

Der Befehl von Netstat gibt Ihnen eine Vorstellung davon, welche Ports der Host hört.

Nachdem der Container begonnen wurde, können Sie auch laufen Docker PS Befehl, um den Status des laufenden Containers anzuzeigen.

6. Die Webseite kann über die Befehlszeile auf Ihrem Host angezeigt werden Locken Dienstprogramm gegen Ihre Maschinen -IP -Adresse, localhost oder Docker Net -Schnittstelle auf Port 81. Verwenden Sie die IP -Befehlszeile, um die IP -Adressen der Netzwerkschnittstelle anzuzeigen.

# IP ADDR [LISTE NEWORK Interfaces] # curl IP-Address: 81 [System Docker IP-Adresse] # curl localhost: 81 [localhost] 
Überprüfen Sie die Docker -Netzwerkschnittstelle und die IP -Adresse Überprüfen Sie die Docker Apache -Webseite

7. Um die Container -Webseite von Ihrem Netzwerk von Ihrem Netzwerk zu besuchen, öffnen Sie einen Browser an einem Remote -Ort und verwenden.

http: // ip-address: 81 
Überprüfen Sie die APache -Seite von Docker Container

8. Um einen Inneren zu erhalten, in welchen Prozessen im Container ausgeführt wird, geben Sie den folgenden Befehl aus:

# Docker PS # Docker Top  
Überprüfen Sie laufende Docker -Prozesse

9. Um das Problem des Containers zu stoppen Docker Stopp Befehl gefolgt von der Container -ID oder dem Namen.

# Docker Stop # Docker PS 

10. Falls Sie einen beschreibenden Namen für den Container zuweisen möchten, verwenden Sie die --Name Option, wie im folgenden Beispiel gezeigt:

# DOCKER RUN -NAME MY -WWW -D -P 81:80 UBUNTU -APACHE # DOCKER PS 
Geben Sie den Namen des Docker -Containers an

Jetzt können Sie auf den Container zur Manipulation (Start, Stopp, Top, Statistiken usw.) nur mit dem zugewiesenen Namen verweisen.

# Docker-Statistiken mein-www 
Überwachen Sie die Docker -Containerauslastung

Schritt 3: Erstellen Sie eine systemweite Konfigurationsdatei für Docker-Container

11. An CentOS/Rhel Sie können a erstellen systemd Konfigurationsdatei und verwalten den Container wie normalerweise für jeden anderen lokalen Dienst.

Erstellen Sie beispielsweise eine neue Systemd -Datei mit dem Namen, sagen wir, Apache-Docker.Service Verwenden des folgenden Befehls:

# vi/etc/systemd/system/apache-docker.Service 

Apache-Docker.Service Dateiauszug:

[Einheit] Beschreibung = Apache Container erfordert = Docker.Service After = Docker.Service [Service] restart = immer execstart =/usr/bin/docker start -a my -www execStop =/usr/bin/docker stop -t 2 my -www [install] suchtby = local.Ziel 

12. Nachdem Sie die Bearbeitung der Datei beendet haben, laden Sie sie nach, laden Sie den Systemd -Daemon neu, um Änderungen widerzuspiegeln, und starten Sie den Container, indem Sie die folgenden Befehle ausgeben:

# Systemctl Dämon-Reload # SystemCTL Start Apache-Docker.Service # SystemCtl Status Apache-Docker.Service 

Dies war nur ein einfaches Beispiel dafür, was Sie mit einem einfachen tun können Dockerfile Sie können jedoch einige ziemlich hoch entwickelte Anwendungen vor dem Bau eines Sekunden lang mit minimalen Ressourcen und Anstrengungen vorbauen.

Weitere Lektüre:

Teil 4: Wie man Docker -Container unter Linux überwacht