Wenn Docker und Container neu für Sie sind, ist die Einrichtung von Apache Docker Container ein guter Einstieg. Das Erstellen einer Anwendung auf Docker ist aufgrund seiner leichten Technologie und Sicherheit ein großer Vorteil.
In diesem Tutorial erfahren Sie, wie Sie einen Apache Docker Container auf Ubuntu einrichten. Verwenden Sie dieses Tutorial, um die ersten Schritte mit Docker zu lernen, und kommen Sie auch mit einem Apache-Webserver davon!
Voraussetzungen
Wenn Sie Schritt für Schritt folgen möchten, stellen Sie sicher, dass Sie die folgende und Ubuntu 14.04.4 LTS oder höher Maschine mit installiertem Docker in diesem Tutorial haben. Dieses Tutorial verwendet Ubuntu 18.04.5 LTS mit Docker v19.03.8 und einer öffentlichen IP-Adresse von 13.213.48.113.
Einrichten des Apache Docker-Containers
Angenommen, Sie haben Docker bereits installiert, richten wir zuerst den Apache-Container ein. Später erfahren Sie, wie Sie es starten.
Eine der einfachsten Möglichkeiten, schnell einen Apache-Docker-Container hochzufahren, ist das Herunterladen eines vorhandenen Container-Images von der offiziellen Docker-Registrierung Docker Hub. Für dieses Beispiel laden Sie einen Docker-Container namens Apache herunter und führen ihn aus.
Mit ein paar Docker-Befehlen führen Sie im Handumdrehen eine Instanz von Apache aus. Führen Sie dazu die folgenden Schritte aus.
Hinweis:In diesem Tutorial wird das Ausführen von Docker-Befehlen nicht ausführlich behandelt. Um mehr über Docker-Befehle zu erfahren, besuchen Sie die Docker-Befehlszeilen-Dokumentationsseite.
1. Öffnen Sie ein Terminal auf Ihrem Ubuntu-Rechner.
2. Laden Sie das Docker-Image herunter, das Apache namens httpd
enthält , indem Sie docker pull
ausführen Befehl unten. Dieser Befehl lädt das Apache-Image herunter oder zieht es aus der Docker-Registrierung, wie unten gezeigt.
# Pulls the Docker Images from docker registry to your local machine.
docker pull httpd
Der Screenshot unten zeigt das erwartete Ergebnis beim Ziehen des Bildes von Docker Hub.
3. Bestätigen Sie als Nächstes, dass Sie das Image heruntergeladen haben, indem Sie docker images
ausführen Befehl unten, um alle auf Ihrem Computer verfügbaren Bilder aufzulisten.
# To check the docker images
docker images
Wie Sie unten sehen können, haben Sie jetzt ein Docker-Image, das Sie von Docker Hub heruntergeladen haben.
Ausführen des Apache-Containers mit dem Docker-Befehl.
Im vorherigen Abschnitt haben Sie das Docker-Image vom Docker-Hub heruntergeladen. Sie können jetzt einen Container aus diesem Image erstellen. Um den Apache-Container auszuführen, müssen Sie den Docker-Befehl wie folgt ausführen:
1. Rufen Sie docker run
auf Befehl, um einen neuen Container basierend auf Ihrem heruntergeladenen Apache Docker-Image zu erstellen.
# Run a new docker container called docker-apache (--name)
# Map the local computer's port 80 to the container's port 80 (-p 80:80)
# In detached mode (-d)
# Using the Apache image
docker run -d --name docker-apache -p 80:80 -d httpd
Der docker run
Der Befehl gibt dann die eindeutige Container-ID des Containers zurück, den Sie gerade erstellt haben. Speichern Sie diese Container-ID im hervorgehobenen Feld unten für die Zukunft, wenn Sie den Container löschen oder entfernen möchten.
2. Wenn der Apache-Container ausgeführt wird, überprüfen Sie, ob Sie auf die Apache-Weboberfläche zugreifen können, indem Sie zu Öffentliche IP-Adresse:80 navigieren mit Ihrem Webbrowser. Wenn Sie dieselbe Meldung sehen können, wie Sie unten sehen können, haben Sie Ihren Apache Docker-Container erfolgreich gestartet.
Stellen Sie sicher, dass der Ubuntu 14.04.4 LTS-Rechner einen in der Sicherheitsgruppe zugelassenen Port 80 für eingehenden Datenverkehr hat.
3. Stoppen Sie abschließend den Container, wenn Sie ihn nicht mehr benötigen, indem Sie docker stop
ausführen Befehl unten. Dieser Befehl stoppt die Containerinstanz ordnungsgemäß.
# Stop the container with ID aaaee64a4512 Make sure to change the container ID value to yours.
# Note: specifying the first 12 characters of the container ID is enough.
docker stop aaaee64a4512
Alternativ können Sie auch einen laufenden Container stoppen, indem Sie seinen Namen im
docker stop
angeben Befehl (docker stop docker-apache
).
Apache-Docker-Container aus Docker-Datei ausführen
Im vorherigen Abschnitt haben Sie gelernt, wie Sie einen Apache-Docker-Container starten, indem Sie das Standard-httpd-Docker-Image ausführen. Was ist, wenn Sie das Basis-Image aktualisieren müssen, um andere Inhalte anzuzeigen oder es auf einem anderen Port verfügbar zu machen?
Durch das Bereitstellen eines Containers mithilfe einer Docker-Datei können Sie den manuellen Image-Erstellungsschritt entfernen, wenn Sie dasselbe Setup auf einem anderen Betriebssystem testen. Der Docker-File-Ansatz ist ein automatisiertes Skript von Docker-Images.
Lassen Sie uns eine Docker-Datei erstellen und daraus einen Container ausführen.
1. Erstellen Sie einen Ordner namens ~/apache-server-docker-demo, dann ändern (cd
) das Arbeitsverzeichnis in diesen Ordner.
mkdir ~/apache-server-docker-demo
cd ~/apache-server-docker-demo
2. Erstellen Sie eine weitere Datei, kopieren/fügen Sie die folgende Konfiguration ein und speichern Sie die Datei als index.html innerhalb der ~/apache-server-docker-demo Verzeichnis. Die index.html file ist eine HTML-Seite, die Dieses Tutorial zeigt, wie man Apache-Container im Docker ausführt sobald der Container startet, den Sie später im Kurs sehen werden.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>This tutorial will teach how to Run Apache container in docker .</title>
</head>
<body>
<h1>This tutorial will teach how to Run Apache container in docker , lets GO!</h1>
</body>
</html>
3. Erstellen Sie eine weitere Datei, kopieren/fügen Sie die folgende Konfiguration ein und speichern Sie die Datei als Docker-Datei in der ~/apache-server-docker-demo Verzeichnis. Wenn dies abgeschlossen ist, verwendet Docker diese Docker-Datei, um alle Befehle auszuführen, die zum Erstellen eines neuen Docker-Images über einem beliebigen Basis-Image erforderlich sind.
Die DockerFile Unten finden Sie verschiedene Schritte/Anweisungen zum Erstellen des Apache-Containers:
Maintainer
– Betreueranleitung gibt Auskunft über den Autor, der diese Datei verwaltet.FROM
– Die FROM-Anweisung initialisiert eine neue Erstellungsstufe und setzt das Basisbild für nachfolgende Anweisungen. Im folgenden Code-Snippetcentos:7
ist das Basisbild.COPY
– Der Befehl COPY kopiert eine Datei vom Hostcomputer (Docker-Host) in den Container. Die ****index.html Sie zuvor auf dem Docker-Host erstellt haben, werden in die Container /var/www/html kopiert Verzeichnis.EXPOSE
– Die EXPOSE-Anweisung informiert Docker darüber, dass der Container zur Laufzeit auf den angegebenen Netzwerkports lauscht. Der Apache-Webserver wird standardmäßig aufPort 80
bereitgestellt .
# Instruction for Dockerfile to create a new image on top of the base image (httpd)
FROM httpd:2.4
MAINTAINER [email protected]
COPY index.html /var/www/html/
EXPOSE 80
4. Überprüfen Sie als Nächstes alle erforderlichen Dateien unten im Ordner, indem Sie den tree
ausführen Befehl.
5. Erstellen Sie als Nächstes das Image, indem Sie docker build
ausführen Befehl. Das t
Flag wird verwendet, um das Image apache-server
zu markieren mit v1
und.
bezeichnet das aktuelle Arbeitsverzeichnis.
# Building the docker Image
sudo docker build -t apache-server:v1 .
Wenn Docker-Builds ausgeführt werden, gibt es verschiedene Attribute zurück. Sie werden sehen, dass eines dieser Attribute REPOSITORY ist. Der REPOSITORY-Name ist apache-server
, und das Bild ist mit der Version v1
gekennzeichnet , Wie nachfolgend dargestellt.
6. Führen Sie schließlich den Apache-Container mit dem neu erstellten Image aus, indem Sie docker run
ausführen Befehl.
Das p
flag veröffentlicht den/die Port(s) eines Containers an den Host, der 80:80
ist . Das -it
flag weist Docker an, ein Pseudo-Terminal zuzuweisen, das mit der stdin des Containers verbunden ist.
# Running the Apache container using the newly built image
docker run -it -p 80:80 apache-server:v1
7. Überprüfen Sie abschließend, ob Sie auf die Apache-Weboberfläche zugreifen können, indem Sie zu Public-ip-address:80 navigieren mit Ihrem Webbrowser. Sie sehen diese Meldung auf der Weboberfläche, weil Sie die Datei index.html erstellt haben und Docker sie beim Start in den Container kopiert hat.
Schlussfolgerung
Dieses Tutorial soll Ihnen beim Einrichten eines Apache-Docker-Containers mithilfe von Docker-Images helfen. Sie haben gelernt, wie Sie Apache-Container mithilfe von Docker-Dateien starten, mit denen Sie benutzerdefinierte Container Ihrer Wahl bearbeiten und erstellen können.
Was werden Sie also auf dem Docker-Image des Apache-Servers aufbauen?