Dies ist eine Fortsetzung von Einführung in Linux Container / Docker (Teil 1).
Docker
Von Docker bereitgestellte OSS-Container-Engine. (Es gibt auch eine kostenpflichtige Version)
Wie oben erwähnt, ist LXC nicht sehr praktisch, da es nur die Mindestfunktionen </ u> hat ** ⇒ Docker ** ist eine Erweiterung von LXC, die verpackt ist, um die Handhabung zu vereinfachen.
Docker ist ein Tool, das die oben erwähnte LXC-Technologie umschließt und die Verwendung vereinfacht. Die folgenden Funktionen werden hinzugefügt.
Portabilität, Freigabefunktion Docker kann Container in TAR-Dateien archivieren und an andere physische Computer senden oder über die Containerregistrierung freigeben. Dadurch kann der erstellte Container auf einen anderen Computer umgeleitet werden.
Anwendungsfokus LXC wurde ursprünglich aus der Perspektive einer "leichten VM" erstellt, aber Docker macht LXC leichter und einfacher, wodurch es einfacher wird, jede Anwendung und jeden Prozess zu containerisieren.
IaC Im Container zu erstellende Dateien und zu installierende Anwendungen können im Format Dockerfile definiert werden. Dies ermöglicht es, den Inhalt des Containers auf IaC-Weise zu definieren.
Versionskontrolle Mit Docker erstellte Container können eine Versionsnummer erhalten und mit Docker verwaltet werden. Dadurch ist es möglich, Unterschiede zwischen Versionen zu verwalten und bei Problemen ein Rollback durchzuführen.
Wiederverwendung von Bauteilen Docker erstellt ein Container-Image in Form des Hinzufügens von Dateien und Anwendungen zu einem vorhandenen Container-Image mithilfe eines Mechanismus, der als Ebenen bezeichnet wird. Durch die gemeinsame Nutzung der Teile, die mehreren Containern gemeinsam sind, können die Festplattenkapazität und die Verwaltungskosten reduziert werden.
Ökosystem Docker ist der größte Containermotor und wird von einem großen Ökosystem umgeben. Beispiele hierfür sind die folgenden zugehörigen Software- und Serviceleistungen.
--Docker Hub… Eine Site, die Docker-Container im Internet gemeinsam nutzt --Docker-Compose… Software zum gemeinsamen Starten mehrerer Container --Kubernetes… Software, mit der Sie Container flexibler betreiben können, indem Sie einen Cluster mit einer großen Anzahl von Linux-Hosts bilden (später beschrieben).
Im Fall einer VM ist das Image eine Vorlage und die Instanz ist die VM, die tatsächlich ausgeführt wird. Intern verweist die Instanz nur auf das Image, sodass beim Start kein Kopieren erfolgt. Durch Angabe des Image-Namens mit dem Docker-Befehl und "Ausführen" wird der Linux-Container tatsächlich erstellt.
In Docker werden neue Bilder erstellt, indem Dateien zu vorhandenen Bildern hinzugefügt und Befehle ausgeführt werden. Für wichtige OSS wird das offizielle Container-Image auf einer Website im Internet namens Docker Hub veröffentlicht. Bei der tatsächlichen Verwendung wird häufig ein benutzerdefiniertes Bild erstellt und verwendet, indem dem offiziellen Bild Einstellungswerte hinzugefügt werden.
Dockerfile
Die Definition zum Erstellen eines Bildes (welche Datei hinzugefügt werden soll, welcher Befehl ausgeführt werden soll) ist im Text Dockerfile beschrieben. Das Erstellen eines Container-Images mit einer Docker-Datei wird als "Build" bezeichnet.
--Container-Image (Basis-Image) + Docker-Datei => (Build) => ** Container-Image (benutzerdefiniertes Image) ** --Container image => (Start) => ** Containerinstanz **
Wie im folgenden Beispiel gezeigt, wird es im Wesentlichen durch Hinzufügen einer Datei oder Ausführen eines Befehls zu einem vorhandenen Container-Image erstellt, das vom Docker-Hub oder dergleichen abgerufen wird. Es ist nicht unmöglich, einen Behälter von Grund auf neu herzustellen, aber es ist nicht möglich, weil es schwierig ist und wenig Wert hat.
Erstellen Sie einen Container zum Ausführen eines Python-Programms namens app.py wie folgt. (Das Paket usw., das enthalten ist, ist nur als Beispiel angemessen geschrieben, es gibt keine besondere Bedeutung)
Dockerfile
#Erstellt aus dem offiziellen Python-Image
FROM python:3.7.6-stretch
#Paket mit pip installieren
RUN pip install pip --upgrade && \
pip install numpy scipy
#Installieren Sie das Paket mit apt
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sshpass
#Erstellen Sie ein Verzeichnis
WORKDIR /work
#Platzieren Sie das Programm
COPY app.py /work
#Geben Sie den ersten Befehl an, der beim Starten einer Containerinstanz ausgeführt werden soll
ENTRYPOINT python /work/app.py
Nachdem Sie dies geschrieben und gespeichert haben, können Sie den Container erstellen, indem Sie ihn mit dem Befehl docker build
laden.
Ein Mechanismus zum Freigeben des erstellten Container-Images. Viele OSS-Container-Images und persönlich erstellte Container-Images werden auf Docker Hub im Internet veröffentlicht. (!) Bitte beachten Sie, dass Sie nicht wissen, was in dem von der Person veröffentlichten Bild enthalten ist.
Wenn Sie in einer geschlossenen Umgebung arbeiten, ist es wünschenswert, eine Containerregistrierung in diesem Netzwerk einzurichten.
Das Herunterladen eines Bildes aus der Registrierung wird als "Pull" und das Hochladen als "Push" bezeichnet.
Docker
** Containerbild **… Containervorlage. Hinzufügen (Ändern) von Dateien zu einem vorhandenen Bild Sie können ein benutzerdefiniertes Bild erstellen.
** Containerinstanz **… Die tatsächliche Ausführungsumgebung, die aus dem Container-Image erstellt wurde. Intern bezieht es sich nur auf das Bild, daher wird es für einen Moment erstellt. Ich benutze nicht viel Speicher.
** Containerregistrierung **… Ein Ort zum Speichern von Containerbildern. Es ist im Internet und kann lokal eingerichtet werden.
Recommended Posts