GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Docker:Wie man es praktisch nutzt - Teil 3

Teil 3:Notepad mit WordPress- und DokuWiki-Containern erstellen

Vorwort

Im ersten Teil haben wir darüber gesprochen, wie Docker-Container funktionieren und sich von anderen Softwarevirtualisierungstechnologien unterscheiden, und im zweiten Teil haben wir unser System für die Verwaltung von Docker-Containern vorbereitet.

In diesem Teil werden wir damit beginnen, Docker-Images zu verwenden und auf praktische Weise Container zu erstellen. Mit anderen Worten, wir erstellen einen webbasierten, fortschrittlichen persönlichen Notizblock, der auf DokuWiki oder WordPress läuft. Sie können wählen, womit Sie sich wohlfühlen.

Wie man einen Docker-Container ausführt

Zuerst müssen wir sicherstellen, dass die Docker-Engine wie benötigt funktioniert, indem wir ein „Hello World“-Image herunterladen und daraus einen Container erstellen.

Denken Sie daran, wenn wir über ein Image sprechen, ist es der suspendierte Zustand, während es sich bei Containern um eine Laufzeitinstanz eines Docker-Images handelt. In einer Analogie, die wir in einem vorherigen Teil besprochen haben, ist ein Docker-Image wie die ISO-Datei einer Linux-Distribution, während der Container die Live-Sitzung der ISO-Datei ist, als ob Sie sie von einem USB-Stick ausführen würden. P>

Um das "Hello World"-Bild herunterzuladen und auszuführen, geben Sie einfach das Terminal

ein
sudo docker run hello-world

Dieser Befehl lädt das Hello World-Image herunter und führt es in einem Container aus. Wenn der Container ausgeführt wird, gibt er eine Informationsnachricht aus und wird dann beendet (was bedeutet, dass er heruntergefahren wird).

Wie überprüfen wir, wie viele Bilder wir in unserem System haben? Nun, wir laufen einfach

sudo Docker-Bilder

Sie fragen sich vielleicht, wie mein System dieses Hello World-Bild gefunden hat und woher es stammt? Nun, hier kommt der Docker-Hub ins Spiel.

Einführung in den Docker-Hub

Der Docker Hub ist eine Cloud-basierte zentralisierte Ressource für die Container-Image-Erkennung, Image-Erstellung und Verteilung dieser Images.
Insbesondere Docker Hub bietet einige nützliche Eigenschaften und Funktionen, die wir in späteren Teilen näher besprechen werden.

Derzeit konzentrieren wir uns auf eine Funktion, nämlich das Finden und Herunterladen eines Docker-Images.

Suche nach Docker-Images

Sie können nach einem „bereit zum Herunterladen und Ausführen von Docker-Image“ suchen, indem Sie einfach den Online-Docker-Hub besuchen oder das Terminal verwenden. Beachten Sie, dass Sie ein Docker-Image nicht vom Web-Hub herunterladen können, aber Sie können mehr über ein Image erfahren, z. B. wie es erstellt und gewartet wird usw.

Für die Zwecke dieses Teils konzentrieren wir uns also auf die Verwendung des Terminalwegs. Lass uns nach WordPress suchen

sudo docker search wordpress

Wie Sie sehen können, gibt es Unmengen von WordPress-Docker-Images, die mit verschiedenen Kombinationen (z von Privatpersonen unterhalten). Es ist offensichtlich, dass jeder ein Konto erstellen und sein / ihr benutzerdefiniertes Docker-Image hochladen kann, und wir werden es in einem späteren Teil besprechen.

Herunterladen eines Docker-Images

Für den Zweck dieses Artikels verwenden wir das neueste Docker-Image von Bitnamis, das mit vorinstalliertem MySQL geliefert wird. Also laden wir es herunter:

sudo docker pull bitnami/wordpress:latest

Sobald Sie den obigen Befehl ausführen, kommuniziert er mit dem Docker-Hub, fragt, ob es ein Repository namens „bitnami“ gibt, und fragt dann, ob es einen „WordPress“-Build gibt, der als „neueste“ Version gekennzeichnet ist.

Derzeit haben wir ein WordPress-Image heruntergeladen und sonst nichts. Wir können jetzt fortfahren, indem wir ein DokuWiki-Bild herunterladen, indem wir eines suchen und das auswählen, das uns gefällt, oder das folgende verwenden

sudo docker pull mprasil/dokuwiki

Die Docker-Image-Architektur

Während Sie auf den Abschluss des Download-Vorgangs warten, können Sie sehen, dass ein Docker-Image ein mehrschichtiges Image über einem Basis-Image ist. Sie können sehen, wie jede einzelne Schicht heruntergeladen und dann „magisch“ vereinheitlicht wird. Das folgende Diagramm zeigt ein Ubuntu-Basisimage, das aus 4 gestapelten Image-Ebenen besteht.

Wie Sie sich vorstellen können, verweist jedes Docker-Image auf eine Liste von schreibgeschützten Ebenen, die Dateisystemunterschiede darstellen. Wenn Sie später aus einem Docker-Image einen neuen Container erstellen, fügen Sie eine neue, dünne, beschreibbare Ebene über dem darunter liegenden Stapel hinzu. Alle Änderungen, die am laufenden Container vorgenommen werden – wie das Schreiben neuer Dateien, das Ändern vorhandener Dateien und das Löschen von Dateien – werden in diese dünne, beschreibbare Containerschicht geschrieben. Das folgende Diagramm zeigt einen Container, der auf dem Ubuntu 15.04-Image basiert.


Löschen eines Docker-Images

Wenn Sie jetzt überprüfen, wie viele Bilder Sie auf Ihrem System haben

sudo Docker-Bilder

Sie sehen WordPress, DokuWiki und Hello World. Wenn Sie aus irgendeinem Grund ein Bild entfernen und löschen (rmi) möchten, geben Sie einfach

ein
sudo docker rmi 

wobei der Name des Bildes der Name des Dockers ist, wie er mit dem Befehl "docker images" angezeigt wird. Wenn wir beispielsweise „Hello World“ löschen möchten, können wir einfach Folgendes eingeben:

sudo docker rmi hallo-welt

Container sind kurzlebig

Docker-Container sind konstruktionsbedingt kurzlebig. Mit „flüchtig“ meinen wir, dass ein Container angehalten und zerstört werden kann und ein neuer aus demselben Docker-Image erstellt und mit einem absoluten Minimum an Einrichtung und Konfiguration eingerichtet werden kann.

Daher sollten Sie bedenken, dass alle Änderungen, die Sie z. Das Hinzufügen eines Beitrags oder Bildes geht verloren, sobald Sie den Container stoppen oder löschen. Mit anderen Worten, wenn ein Container gelöscht wird, werden alle in den Container geschriebenen Daten, die nicht in einem Datenvolume gespeichert sind, zusammen mit dem Container gelöscht.

Ein Datenvolume ist ein Verzeichnis oder eine Datei im Dateisystem des Docker-Hosts, das direkt in einen Container gemountet wird. Auf diese Weise können Sie Container durch neue austauschen und alle Daten sicher im Home-Ordner Ihres Benutzers aufbewahren. Beachten Sie, dass Sie eine beliebige Anzahl von Datenvolumes in einen Container einhängen können. Auch mehrere Container können sich ein oder mehrere Datenvolumen teilen.

Das folgende Diagramm zeigt einen einzelnen Docker-Host (z. B. Ihr Ubuntu 15.10), auf dem zwei Container ausgeführt werden. Wie Sie sehen können, befindet sich auf dem Docker-Host auch ein einzelnes freigegebenes Datenvolume unter /data. Dieser wird direkt in beide Container montiert.

Auf diese Weise bleiben beim Löschen eines Containers alle in Daten-Volumes gespeicherten Daten auf dem Docker-Host bestehen und können in einem neuen Container gemountet werden.

Docker-Container-Netzwerk

Wenn Sie Docker installieren, erstellt es ein Netzwerkgerät in Ihrem System. Sie können es (es wird docker0 genannt) als Teil des Netzwerkstapels eines Hosts anzeigen, indem Sie den Befehl „ifconfig“ auf Ihrem Hostsystem verwenden.

Es ist wichtig zu verstehen, dass Docker-Container isoliert und einzelne Mikrodienste sind, die ihre eigenen Netzwerkeigenschaften haben, und wir betreiben sie und stellen eine Verbindung zu ihnen her, indem wir ihre Portnummer einer Portnummer des Hostsystems zuordnen.

Auf diese Weise können wir den Webdienst, den ein Container ausführt, für das Hostsystem verfügbar machen.

Erstellen eines persönlichen Notizblocks mit einem WordPress-Container

Beginnen wir mit der Erstellung unseres Testnotizblocks. Zuerst verwenden wir das WordPress-Image, um einen Docker-Container zu erstellen

sudo docker run --name=mynotepad -p 80:80 -p 443:443 bitnami/wordpress

Mit dem obigen Befehl haben wir den Docker-Dienst in unserem Hostsystem aufgefordert, einen Container mit dem Namen „mynotepad“ (--name=mynotepad) zu erstellen und auszuführen (docker run), den HTTP- und den HTTPS-Port des Hosts und des Containers ( -p 80:80 -p 443:443 ) und verwenden Sie das WordPress-Image ( bitnami/wordpress )

Sobald der Container initialisiert ist, werden Sie mit einigen Informationen über den Container begrüßt. Es ist an der Zeit, einen Browser zu starten und auf http://localhost

zu verweisen

Wenn alles gut gelaufen ist, sehen Sie die Standard-WordPress-Website

Wie Sie vielleicht bereits wissen, um sich auf der WordPress-Administrationsseite anzumelden, gehen Sie einfach zu http://localhost/login und verwenden Sie die Standardanmeldeinformationen user / bitnami. Dann können Sie einen neuen Benutzer oder einen Testbeitrag im WordPress erstellen und veröffentlichen. Sie können meinen Testbeitrag im Bild unten sehen

Kommen wir zurück zum Terminal. Wie Sie sehen können, ist Ihr Terminal derzeit an den laufenden Container gebunden. Sie können Strg+C zum Beenden verwenden. Dadurch wird auch der Container gestoppt.

Lassen Sie uns nun unsere verfügbaren Container überprüfen. Sie können den folgenden Befehl ausführen:

sudo docker ps -l

um den Container anzuzeigen, den wir zuvor erstellt und ausgeführt haben.

Wie Sie dem obigen Bild entnehmen können, gibt es einige wichtige Informationen wie den Namen des Containers und die eindeutige ID des Containers. So können wir den Container neu starten:

docker starte mynotepad

Dann können Sie die Prozesse, die der Docker-Container ausführt, mit dem folgenden Befehl überprüfen:

sudo docker top mynotepad

Standardmäßig läuft bei `docker start mynotepad` der Docker-Container im Hintergrund. Um es zu stoppen, können Sie den folgenden Befehl ausführen

sudo docker stop mynotepad

Weitere Informationen zur Interaktion mit dem Container finden Sie in der offiziellen Docker-Dokumentation https://docs.docker.com/engine/userguide/containers/usingdocker/

Wo sind die Container

Wenn Sie sehen möchten, wo sich die Container im Dateisystem des Hosts befinden, können Sie zu /var/lib/docker

gehen
sudo cd /var/lib/docker
sudo ls
sudo cd container
sudo cd ID
sudo ls

Wie Sie sehen können, stellen die ID-Nummern die tatsächlichen Container dar, die Sie erstellt haben.

Persistenten Speicher erstellen

Lassen Sie uns einen neuen WordPress-Container erstellen, aber dieses Mal wird er in den Hintergrund gestellt und auch der WordPress-Ordner für unser Hostsystem verfügbar gemacht, damit wir Dateien darin ablegen oder unerwünschte Dateien entfernen können.

Zuerst erstellen wir einen Ordner in unserem Home-Verzeichnis

mkdir ~/wordpress-files

Führen Sie dann einen Container aus und erstellen Sie ihn basierend auf demselben Image, das wir zuvor erstellt haben:

sudo docker run -d -ti --name=mynotepad-v2 -v ~/wordpress-files:/opt/bitnami/apps -e USER_UID=`id -u` -p 80:80 bitnami/wordpress 

Der Unterschied besteht diesmal darin, dass wir den -d-Parameter für den Detached-Modus und den -ti-Parameter verwendet haben, um ein Terminal im interaktiven Modus anzuhängen, damit ich später damit interagieren kann.

Um den laufenden Container zu überprüfen, führen Sie einfach den folgenden Befehl aus

sudo docker ps

Stoppen wir den Container

sudo docker stop mynotepad-v2

Wenn Sie jetzt den Befehl „docker ps“ ausführen, sehen Sie dort nichts.
Beginnen wir ihn erneut mit dem folgenden Befehl:

sudo docker start mynotepad-v2

Wenn Sie den Ordner überprüfen, den wir zuvor erstellt haben, sehen Sie die WordPress-Installation

Sie können mehr über das von uns verwendete Image im Docker-Hub https://hub.docker.com/r/bitnami/wordpress/

lesen

Erstellen eines persönlichen Notizblocks mit einem DokuWiki-Container

Dieses Mal erstellen wir mit DokuWiki einen Notizblock. Da wir das Image zuvor heruntergeladen haben, müssen wir nur noch einen Container daraus erstellen.

Lassen Sie uns also den folgenden Befehl ausführen, um unseren `mywikipad` benannten Container

zu erstellen
docker run -d -p 80:80 --name mywikipad mprasil/dokuwiki

Gehen Sie dann zu Ihrem Browser und fügen Sie die folgende Adresse hinzu, um mit der Konfiguration Ihres Wiki-Notizblocks zu beginnen:

http://localhost/install.php

Sie können mehr über DokuWiki aus der offiziellen Dokumentation erfahren und das Wiki an Ihre Bedürfnisse anpassen:

https://www.dokuwiki.org/manual

Löschen eines Docker-Containers

Sobald Sie mit dem Erstellen, Starten und Stoppen von Docker-Containern vertraut sind, werden Sie feststellen müssen, dass Sie das von den mehreren Containern verursachte Test-Chaos aufräumen müssen.

Um einen Container zuerst zu löschen, müssen Sie ihn stoppen und dann löschen, indem Sie den folgenden Befehl ausführen:

docker rm 

Sie können auch mehrere IDs im selben „docker rm“-Befehl hinzufügen, um mehrere Docker-Container gleichzeitig zu löschen.

Zusammenfassung

In diesem Teil haben wir gelernt, wie man einen Container erstellt und praktisch verwendet, um einen persönlichen Notizblock auf Basis von WordPress oder DokuWiki zu erstellen. Wir haben uns einige grundlegende Befehle zum Starten und Stoppen der von uns erstellten Container und zum Löschen der Bilder und Container angesehen.

Im nächsten Teil werfen wir einen Blick darauf, wie die Docker-Images erstellt werden, indem wir unsere eigenen erstellen.


Docker
  1. So verwenden Sie Docker Compose

  2. So verwenden Sie ein Dockerfile zum Erstellen eines Docker-Images

  3. So teilen Sie Docker-Images mit anderen

  4. So verwenden Sie den Docker-Inspect-Befehl

  5. So ändern Sie Docker-Images

So installieren und verwenden Sie Docker unter Ubuntu 22.04

Was ist Docker Compose und wie wird es verwendet?

So erstellen Sie ein Docker-Image aus einem laufenden Container

So reduzieren Sie die Docker-Image-Größe in Docker-Containern

So verwenden Sie Docker:Bild speichern und zum Teilen exportieren

So verwenden Sie Docker Commit zum Ändern von Container-Images