Inhaltsverzeichnis
1. Docker
1. Einführung
Start:
-d Hintergrundausführung
Docker Start
            FROM ;image>
RUN: Befehl, der beim Erstellen des Images ausgeführt werden soll
CMD Echo „1111“" > CMD [„EthTool“, „-Help“] CMD Echo „1111“
Beispiel:
5. Detaillierte Erklärung von Linux NameSpace
Detaillierte Erklärung von NameSpace:
Allgemeine Operationen von NameSpace
6. Detaillierte Erklärung von Linux Cgroups
Enthalten äh Kern: cgroups – Sie können sich auf das kurze Buch „Lernen wir mehr über diesen Artikel lernen“ beziehen.
1. Konzept:
$ yum install Bride-Utils
ubuntu-System:
3 Simulieren Sie den Betrieb der Docker-Netzwerkbrücke
Erstellen Sie --net=none nginx
Netzwerk-Namespace erstellen
Netzwerk-Namespace-Link erstellen
Überprüfen Sie das aktuell erstellte Bridge-Gerät
Veth-Paar erstellen
Führen Sie eine Netzwerkkonfiguration durch. Nginx Docker
Heim Betrieb und Instandhaltung Docker Die systematischste Beherrschung der Docker-Kerntechnologie (Zusammenfassungsfreigabe)

Die systematischste Beherrschung der Docker-Kerntechnologie (Zusammenfassungsfreigabe)

Feb 04, 2022 am 07:00 AM
docker

Dieser Artikel enthält einige verwandte Fragen zum Containerbetrieb der Docker-Core-Technologie sowie eine detaillierte Erläuterung von Dockerfile usw. Ich hoffe, er wird Ihnen hilfreich sein.

Die systematischste Beherrschung der Docker-Kerntechnologie (Zusammenfassungsfreigabe)

1. Docker

1. Einführung

  • Basierend auf Technologien wie Cgroup, Namespace und Union FS des Linux-Kernels werden Prozesse gekapselt und isoliert. Da der isolierte Prozess unabhängig vom Host ist, werden andere isolierte Prozesse daher als Container bezeichnet. Ab 0.7 wurde LXC entfernt und stattdessen der selbst entwickelte Libcontainer verwendet weiterentwickelt, um runC und Containerd zu verwenden
  • Docker Auf der Basis von Containern wurde eine weitere Kapselung durchgeführt, von Dateisystemen über Netzwerkverbindungen bis hin zur Prozessisolation usw., was die Erstellung und Wartung von Containern erheblich vereinfacht und die Docker-Technologie leichter und leichter macht schneller als die Technologie virtueller Maschinen
  • 2. Vorteile von Docker: Effizientere Nutzung der Systemressourcen
3. Vergleich zwischen Docker und virtuellen Maschinen

  • 2. Docker-Installation
  • Referenzartikel Installation: Docker Engine unter Ubuntu installieren |
  • 3 . Containerbetrieb

Start:

Docker-Ausführung:

​​-it-Interaktion

-d Hintergrundausführung

-p Portzuordnung

                                                                                                                                                                            -v disk mount

Starten Sie das beendete Container

Docker Start

Container stoppen

Docker Stop

    Containerprozess anzeigen
  • Docker PS

    Containerdetails anzeigen
  • docker inspect

    Dateien in den Container kopieren
  • docker cp file1 :/file_to_path

    Docker verlässt das Container und Container nicht schließen: Strg+Q+P
  • Docker verlässt den Container, schließt aber den Container: Exit

Alle Docker-Bilder abfragen
  • Docker-Bilder

  • ?? Erklärung

Dockerfile ist im Allgemeinen in vier Teile unterteilt: grundlegende Image-Informationen, Wartungsinformationen, Image-Bedienungsanweisungen und Container-Start-Bedienungsanweisungen

Allgemeine Befehle
  • VON: Geben Sie das Basis-Image an, muss der erste Befehl sein

  • Format:

                FROM ;image>

               FROM :
  •    #                                  MAINTAINER

    Beispiel

    MAINTAINER-Band

    RUN: Befehl, der beim Erstellen des Images ausgeführt werden soll

    Format:

    Shell-Ausführung: RUN

    exec-Ausführung: RUN ["executable", "param1", "param2"]

    Beispiel:

    RUN apk update

    RUN ["/etc/execfile", "arg1", "arg2"]

    RUN apt-get update && apt-get install Diese beiden Befehle sind immer mit && verbunden, andernfalls wird die Build-Schicht von apt-get update ausgeführt zwischengespeichert werden. Führt dazu, dass das neue Paket nicht installiert werden kann

    ADD: Lokale Dateien zum Container hinzufügen, tar und andere Typen

    werden automatisch dekomprimiert und es kann auf Netzwerkressourcen zugegriffen werden, ähnlich wie bei wget

    Format :

    ADD ... Multi -Stage in Dockerfile (Multi -Stage Construction) -SparkDev -Blog Garden

    Copy & LT; ... & LT; Dest & GT;: Wird nach dem Erstellen des Containers aufgerufen, d. „param1“, „Param2“] (Entrypoint festlegen, Entrypoint direkt aufrufen, um Parameter hinzuzufügen)

    CMD-Befehl Param1 Param2 (Ausführen des Shell-internen Befehls) Beispiel:

    CMD [„EthTool“, „-Help“] CMD Echo „1111“

    ENTRTPOINT: Konfigurieren Sie den Container, um ihn ausführbar zu machen

    .

    Format:

    ENTRYPOINT ["executable", "param1", "param2"] (ausführbare Datei, Priorität)

    ENTRYPOINT-Befehl param1 param2 (Shell-interner Befehl)

    Beispiel:

    ENTRYPOINT /httpserver.

                          CMD [ - c]

    LABAL: Wird verwendet, um Quelldaten zum Bild hinzuzufügen

             LABEL = = ...

    Beispiel:

             LABEL multi.label1="value1" multi.label2="value2" other="value3"

    ENV: Umgebungsvariablen festlegen

    Format:

         ENV < ;value>

    Beispiel:

        ENV MY_SERVICE_PORT=80 UDP_PORT=90

    EXPOSE: Geben Sie den Port für externe Interaktion an

    Format:

        EXPOSE < port> [

    Beispiel:

                                                        VOLUME []

    Beispiel:

    VOLUME [" /data", "/usr1/jenkins"]

    BENUTZER: Geben Sie beim Ausführen des Containers den Benutzernamen oder die UID an. Beim nachfolgenden Ausführen wird ebenfalls der angegebene Benutzer verwendet.

    Format:

    USER user

    USER user:group

    USER uid

    USER uid:gid

    USER user:gid

    USER uid:group

    Beispiel:

    USER www

    ARG: wird verwendet, um anzugeben, an was übergeben werden soll Die Build-Ausführungsvariablen wann

    5. Detaillierte Erklärung von Linux NameSpace

    • Detaillierte Erklärung von NameSpace:

    Blog von Linux NameSpace_Frank_Abagnale – CSDN-Blog Eine ausführlichere Einführung zu diesem Artikel finden Sie hier

    • Allgemeine Operationen von NameSpace

    • Den Namespace des aktuellen Systems anzeigen:

    lsns -t

    • Den Namespace eines Prozesses anzeigen:

    ls -la /proc/

    • Den laufenden Befehl eines Namespace anzeigen

    nsenter -t -n

    6. Detaillierte Erklärung von Linux Cgroups

    • Enthalten äh Kern: cgroups – Sie können sich auf das kurze Buch „Lernen wir mehr über diesen Artikel lernen“ beziehen.

    Simulieren von Cgroups zur Steuerung von CPU-Ressourcen

      Führen Sie top aus und Sie können sehen, dass Busyloop zwei CPU-Ressourcen beansprucht.
    • Fügen Sie den Prozess zur cgroup-Prozesskonfigurationsgruppe hinzu erfolgreich auf 1 % reduziert

    Simulieren Sie Cgroups. Das Überschreiten der begrenzten Speicherressourcen wird OOM töten.

    Erstellen Sie einen Memory-Demo-Ordner im Verzeichnis /sys/fs/cgroup/memory verbrauchendes Programm und verwenden Sie watch, um die Speichernutzung abzufragen siehe die Kill-Informationen

    Hinweis: Löschen Sie den selbst erstellten cgroup-Ordner. Sie müssen cgroup-tools verwenden. 7. Union FS Alle sind von Linux-Technologien abgeleitet und nicht innovativ. Die Innovation von Docker ist das Dateisystem.

    1. Konzept:

    • Ein Dateisystem, das verschiedene Verzeichnisse unter demselben virtuellen Dateisystem bereitstellt
    • Unterstützt das Festlegen von Lese-, Lese- und Schreibberechtigungen für jedes Mitgliedsverzeichnis.
    • Dateisystemschichtung, schreibgeschützt Das Verzeichnis mit Berechtigungen kann sein Die Änderung erfolgt hier inkrementell und hat keinen Einfluss auf den schreibgeschützten Teil. Normalerweise besteht der Zweck von Union FS darin, den schreibgeschützten Teil mit dem schreibgeschützten Teil zu kombinieren
    • 2. Illustration von Union FS
    Im Design des Docker-Images wird das Konzept der Ebene eingeführt, das heißt, jeder Schritt des Benutzervorgangs zum Erstellen des Images generiert eine Ebene, die eine hinzugefügte Ebene ist . Messen Sie rootfs (ein Verzeichnis), sodass die Container, in denen sich Anwendung A und Anwendung B befinden, gemeinsam auf dieselbe Ubuntu-Betriebssystemschicht und Golang-Umgebungsschicht verweisen (als schreibgeschützte Schicht) und jeder über eine eigene Anwendungsschicht verfügt und beschreibbar ist Schicht. Hängen Sie beim Starten des Containers die relevanten Ebenen über UnionFS als Root-Dateisystem des Containers in ein Verzeichnis ein.

    3. Container-Speichertreiber

    4. Simulieren Sie Union FS, um den Effekt besser zu verstehen


    Da die aktuelle Version von Docker den OverlayFS-Speichertreiber verwendet, verwenden wir Overlay Um Experimente durchzuführen Overlayfs wird über drei Verzeichnisse implementiert: Unterverzeichnis, Oberverzeichnis und Arbeitsverzeichnis. Das Arbeitsverzeichnis ist das Basisverzeichnis der Arbeit Bei diesem Vorgang ist der Inhalt für den Benutzer unsichtbar. Schließlich wird die einheitliche Ansicht, die dem Benutzer nach Abschluss der gemeinsamen Bereitstellung angezeigt wird, als zusammengeführtes Verzeichnis bezeichnet.

    Führen Sie den folgenden Befehl aus:

    mkdir upper lower merged work
    echo "lower" > lower/in_lower.txt
    echo "from lower" > lower/in_both.txt
    echo "from upper" > upper/in_both.txt
    echo "upper" > upper/in_upper.txt
    path=$(pwd)
    mount -t overlay overlay -o lowerdir=${path}/lower,upperdir=${path}/upper,workdir=${path}/work ${path}/merged
    Nach dem Login kopieren

    Sie können die Auswirkung der Verwendung der Dateimontage des Overlay-Speichertreibers sehen. Nach Abschluss des Experiments müssen Sie zum Wiederherstellen der Umgebung zuerst das zusammengeführte Verzeichnis aushängen und dann die vier Verzeichnisse löschen. Wenn Sie zuerst die anderen löschen, wird möglicherweise rm: „merged/“ nicht entfernen: Gerät oder Ressource ausgelastet angezeigt. Dies führt dazu, dass das zusammengeführte Verzeichnis nicht gelöscht wird. Er 8. Docker-Netzwerk

    1. Installationstools

    Centos-System:

    $ yum install Bride-Utils

    ubuntu-System:

    $ APT-GET Install Bridge-Utils

    2. Docker-Netzwerkmodus

    Abfrage des integrierten Netzwerkmodus von Docker

    Docker Run wählt den auszuführenden Netzwerkmodus aus

      1) Host-Modus: Verwenden Sie --net=host zur Angabe. Teilen Sie einen Netzsatz mit dem Host

    2) Keiner-Modus: Verwenden Sie --net=none zur Angabe. Die Netzwerkkonfiguration muss von Ihnen selbst konfiguriert werden

    3) Bridge-Modus: Verwenden Sie --net=bridge, um die Standardeinstellung anzugeben.

    Docker-Netzwerk-Logikdiagramm-Brücke und NAT

    4) Containermodus: Verwenden Sie zur Angabe --net=container:NAME_or_ID. Verwenden Sie die Netzwerkkonfiguration anderer Container

    Das Netzwerkmodusdiagramm sieht ungefähr wie unten gezeigt aus

    3 Simulieren Sie den Betrieb der Docker-Netzwerkbrücke

    • Erstellen Sie --net=none nginx

    • Netzwerk-Namespace erstellen

    • Überprüfen Sie das aktuell erstellte Bridge-Gerät

    • Veth-Paar erstellen

    • Führen Sie eine Netzwerkkonfiguration durch. Nginx Docker

    zu eth0 IP konfigurieren Gateway

    Nginx kann auf

    zugreifen. Konfigurieren Sie NAT so, dass Windows auch auf

    zugreifen kann

    • Nach Verwendung löschen Nat-Regeln festlegen

    Empfohlenes Lernen: „

    Docker-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDie systematischste Beherrschung der Docker-Kerntechnologie (Zusammenfassungsfreigabe). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1660
14
PHP-Tutorial
1261
29
C#-Tutorial
1234
24
So verlassen Sie den Container mit Docker So verlassen Sie den Container mit Docker Apr 15, 2025 pm 12:15 PM

Vier Möglichkeiten zum Beenden von Docker Container: Verwenden Sie Strg D im Befehl Container Terminal ENGEBOT IM Container Terminal verwenden Sie Docker Stop & lt; container_name & gt; Befehl verwenden Sie Docker Kill & lt; container_name & gt; Befehl im Host -Terminal (Force Exit)

So kopieren Sie Dateien in Docker nach außen So kopieren Sie Dateien in Docker nach außen Apr 15, 2025 pm 12:12 PM

Methoden zum Kopieren von Dateien in externen Hosts in Docker: Verwenden Sie den Befehl Docker CP: Docker CP [Optionen] & lt; Containerpfad & gt; & lt; Host -Pfad & gt;. Verwenden von Datenvolumina: Erstellen Sie ein Verzeichnis auf dem Host und verwenden Sie den Parameter -V, um das Verzeichnis in den Container zu montieren, um den Container zu erstellen, um eine bidirektionale Dateisynchronisation zu erreichen.

So starten Sie einen Container von Docker So starten Sie einen Container von Docker Apr 15, 2025 pm 12:27 PM

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

So starten Sie Docker neu So starten Sie Docker neu Apr 15, 2025 pm 12:06 PM

So starten Sie den Docker -Container neu: Holen Sie sich die Container -ID (Docker PS); Stop den Container (Docker Stop & lt; Container_id & gt;); Starten Sie den Container (Docker start & lt; container_id & gt;); Stellen Sie sicher, dass der Neustart erfolgreich ist (Docker PS). Andere Methoden: Docker Compose (Docker-Compose Neustart) oder Docker-API (siehe Docker-Dokumentation).

So überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

So aktualisieren Sie das Bild von Docker So aktualisieren Sie das Bild von Docker Apr 15, 2025 pm 12:03 PM

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

So erstellen Sie Container für Docker So erstellen Sie Container für Docker Apr 15, 2025 pm 12:18 PM

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

See all articles