1. ÜbersichtZiel dieses Artikels ist es, die Wissensfragmente der täglichen Docker-Verwaltung zusammenzufassen und zu organisieren, damit sie später überprüft und nachgeschlagen werden können. 2. Anwendungsbeispiele2.1. Docker-Container-Isolations-NamespaceNamespace: Dies ist die wichtigste Kerntechnologie von Linux, auf der die Containervirtualisierung basiert und die zum Isolieren von Containern verwendet wird. Dies wird hauptsächlich durch die folgenden sechs Isolationstechnologien erreicht: Es gibt zwei Pseudodateisysteme: /proc und /sys/
2.2. Dockers kostenlose Einschränkungs-CgroupzB1: docker run -it -m 200M --memory-swap 300M centos //-m oder –memory: Speichernutzungslimit festlegen, –memory-swap: Swap-Nutzungslimit (Swap-Partition) festlegen zB2: docker run -it --name containerB -c 512 centos //containerB, CPU-Gewichtslimit ist 512; -c oder –cpu-shares legt das CPU-Gewicht des Containerexperiments fest. Wenn nicht festgelegt, ist der Standardwert 1024 zB3: docker run -it --name testA --device-write-bps /dev/sda:30MB centos //Container testA begrenzt die Anzahl der Schreibvorgänge auf die Festplatte auf 30 MB pro Sekunde; Andere Parameter:
2.3. Port-Mapping für den laufenden Container festlegenManchmal möchten wir den Container-Mapping-Port anpassen, ohne den Container anzuhalten. Wie können wir also den Service-Port der Anwendung im Container dem lokalen Host-Rechner zuordnen, während der Container verwendet wird? Wenn Sie einige Netzwerkanwendungen im Container ausführen und externen Zugriff auf diese Anwendungen zulassen möchten, können Sie die Portzuordnung mit den Parametern -P oder -p angeben. Wenn Sie den Parameter -P (groß) verwenden, ordnet Docker einen lokalen Host-Port zufällig dem offenen Netzwerkport des internen Containers zu. Wenn Sie den Parameter -p (klein) verwenden, können Sie den zuzuordnenden Port angeben und nur ein Container kann an einen angegebenen Port gebunden werden. Unterstützte Formate sind:
Schauen wir uns einige Beispiele an: zB1: docker run -d -P nginx //docker ps zeigt, dass dem lokalen Host zufällig ein 3****-Port zugewiesen und dem Port 80 des Containers zugeordnet wird. Wenn Sie http://localhost:3**** im lokalen Browser aufrufen, wird die Willkommensseite von nginx angezeigt. zB2: docker run -d -p 8080:80 nginx //Mit docker ps können Sie sehen, dass Port 8080 des lokalen Hosts Port 80 des Containers zugeordnet ist Überprüfung: Befehlsformat: Docker-Port CONTAINER [PRIVATE_PORT[/PROTO]] Verwenden Sie Docker Inspect + Container-ID, um die spezifischen Informationen des Containers zu erhalten: zB3: Fügen Sie einem laufenden Container einen Mapping-Port hinzu docker inspect \`container_name` | grep IPAddress //Ersetzen Sie container_name durch den Containernamen in der tatsächlichen Umgebung, um die IP-Adresse des Containers zu erhalten iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 //Ordnen Sie Port 8000 des Containers Port 8001 des Docker-Hosts zu oder: docker commit container_id foo/live //Einen laufenden Container als Image übermitteln docker run -d -p 8000:80 foo/live /bin/bash //Das Image ausführen und Port-Mapping hinzufügen, Host 8000 zu Container 80, 2.4. Ändern Sie den Inhalt eines laufenden Docker-ContainersIn Docker kopieren und übertragen Host und Container Dateien untereinander docker cp mycontainer:/opt/testnew/file.txt /opt/test/ // Dateien vom Container auf den Host kopieren docker cp /opt/test/file.txt mycontainer:/opt/testnew/ // Dateien vom Host in den Container kopieren sudo docker commit -m „Beschreibungsinhalt“ -a „Autorenname“ 32555789dd00 aipaper/devinz83:v2 //-m wird verwendet, um die Übermittlungsbeschreibung anzugeben, genau wie das von uns verwendete Versionskontrolltool; -a kann die aktualisierten Benutzerinformationen angeben; gefolgt von der ID des Containers, der zum Erstellen des Images verwendet wurde; geben Sie schließlich den Warehouse-Namen und die Tag-Informationen des Zielimages an. Nach erfolgreicher Erstellung werden die Image-ID-Informationen zurückgegeben. Docker-Images // REPOSITORY-TAG überprüfen aipaper/devinz83 v2 #Ändern Sie die Containerkonfigurationsdatei yaml vi /opt/docker/yml/docker-compose-resty-redis.yml docker stack deploy --compose-file=/opt/docker/yml/docker-compose-resty-redis.yml resty_redis //Stellen Sie die Docker-Anwendung mit dem neu geänderten Image bereit. Hinweis: Docker CP wird wirksam, unabhängig davon, ob der Container gestartet wird. Verwenden Sie nach Abschluss den Befehl Docker Commit, um die aktualisierte Kopie festzuschreiben. Aktualisieren Sie dann die YML-Datei des Containers und aktualisieren Sie das Image auf das neue Objekt: 2.5. Docker-Container auf andere Server migrierenManchmal müssen wir den aktuellen Docker-Container aus verschiedenen Gründen, beispielsweise aufgrund von Hardware-Upgrades, Änderungen im Rechenzentrum, Ressourceneinschränkungen usw., in einen anderen Ressourcenpool oder Host migrieren. 1) Container exportieren und importieren: Container exportieren: Dadurch wird eine komprimierte Datei aus dem Dateisystem des Containers erstellt. Die exportierte Datei wird als „gzip“-Datei gespeichert. Die komprimierte Datei wird dann mit einem Dateiübertragungstool wie scp oder rsync auf den neuen Server kopiert. Importieren Sie auf dem neuen Server die GZIP-Datei in einen neuen Container. Docker exportiert Containername | gzip > Containername.gz zcat Containername.gz | Docker-Import – Containername docker run -d container-name /bin/bash //Verwenden Sie den Befehl "docker run", um auf den neuen Container zuzugreifen, der auf dem neuen Server erstellt wurde Hinweis : Ein Nachteil des Tools „Container exportieren“ besteht darin, dass es weder die Ports und Variablen des Containers noch die zugrunde liegenden Daten exportiert, die den Container enthalten. Dies kann beim Versuch, den Container auf einem anderen Server zu laden, zu Fehlern führen. In diesem Zusammenhang können wir auch die Verwendung der Docker-Image-Migration in Betracht ziehen, um Container von einem Server auf einen anderen zu migrieren. 2) Migration von Container-Images: Das heißt, wir migrieren das mit dem Container verknüpfte Image in einen neuen Ressourcenpool. Dies ist auch die gängigste Methode , um einen Docker-Container auf einen anderen Server zu migrieren. Speichern Sie für den zu migrierenden Container zunächst mit dem Befehl „Docker Commit“ dessen Docker-Image in einer komprimierten Datei. docker commit container-id image-name //Das generierte Image wird komprimiert Laden Sie anschließend das obige Image auf den neuen Server hoch und erstellen Sie auf dem neuen Server mit „docker run“ einen neuen Container. 3) Erst speichern, dann das Bild laden Ein Docker-Image ist ein Paket mit dem Code, den Bibliotheken, den Konfigurationsdateien usw. Ihrer Anwendung. Aus diesen Images werden Docker-Container erstellt. Mit „Docker Save“ können Sie das Image komprimieren und auf den neuen Server migrieren. Erstellen Sie anschließend auf dem neuen Server mit „docker load“ aus der komprimierten Image-Datei ein neues Image. Docker speichert Image-Name > Image-Name.tar cat Bildname.tar | Docker laden 4) Datenmengen migrieren: Datenvolumes in Docker-Containern sind gemeinsam genutzte Verzeichnisse , die containerspezifische Daten enthalten. Die Daten im Datenträger sind persistent und gehen bei der Neuerstellung des Containers nicht verloren. Wenn Sie einen Docker-Container oder ein Docker-Image mithilfe der Export- oder Commit-Tools von einem Server auf einen anderen migrieren, werden die zugrunde liegenden Datenvolumes nicht migriert. In diesem Fall werden die Verzeichnisse mit den Daten manuell auf den neuen Server migriert. Erstellen Sie dann einen Container auf dem neuen Server und verweisen Sie auf dieses Verzeichnis als Datenträger. Eine weitere einfache Möglichkeit besteht darin, Datenvolumes zu sichern und wiederherzustellen, indem Sie den Parameter „-volumes from“ im Befehl „docker run“ übergeben. docker run --rm --volumes-from Datenvolumenname -v $(pwd):/Backup-Imagename tar cvf Backup.tar /Pfad zum Datenvolumen docker run --rm --volumes-from Datenvolumenname -v $(pwd):/Backup-Imagename bash -c "cd /Pfad zum Datenvolumen && tar xvf /backup/backup.tar --strip 1" Im obigen Befehl ist datavolume-name /path/to/volume. Dieser Befehl erstellt eine Sicherung des Datenvolumens. Um ein Arbeitsverzeichnis anzugeben, können Sie auch -w/backup angeben. Das im Ordner /backup erstellte Backup kann mittels SCP- oder FTP-Tools auf den neuen Server kopiert werden. Anschließend wird das kopierte Backup extrahiert und auf dem Datenträger im neuen Container wiederhergestellt. 5) Migrieren Sie den gesamten Docker-Container: Die obige Methode funktioniert nur für einen einzelnen Container . Wenn jedoch alle Container von einem Server auf einen anderen migriert werden müssen, verfolgen wir einen anderen Ansatz. Bei dieser Methode wird das gesamte Docker-Verzeichnis („/var/lib/docker“) auf den neuen Server kopiert. Damit dieser Ansatz erfolgreich ist, müssen mehrere Schlüsselpunkte identifiziert werden.
2.6. Dateien im Docker-Image anzeigendocker attach ContainerID //Der entsprechende Container muss ausgeführt werden und darf sich nicht im gestoppten Zustand befinden.##Für den nicht ausgeführten Container können Sie die Dateien im Docker-Image auf den Host kopieren, wie in den folgenden Beispielen gezeigtsudo docker cp nginx-ubuntu-container:/etc/apt/sources.list ~/Documents/ 2.7. Container ausführen: allgemeine Optionen für „docker run“Syntax: docker run [Option] Imagename [an den Startcontainer übergebener Befehl] Beschreibung allgemeiner optionaler Parameter:
Dies ist das Ende dieses Artikels über die Zusammenfassung fragmentarischen Wissens zum Docker-Management. Weitere relevante Inhalte zum Docker-Management finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zwei Boxmodelle in Webseiten (W3C-Boxmodell, IE-Boxmodell)
>>: Sind die Wertebereiche von int(3) und int(10) in MySQL gleich?
Das Schönste, was in einer Produktionsumgebung pa...
Dieser Artikel beschreibt anhand von Beispielen d...
Gehen Sie im Hive-Installationsverzeichnis in das...
Inhaltsverzeichnis 1. Voranalyse 1. Vorabanalyse ...
System- und Benutzerumgebungsdesign <br />D...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Grundlagen 1.Referenz 2. to...
Bei der heutigen Projektoptimierung ist bei MySQL...
Inhaltsverzeichnis 01 CMD 02 EINSTIEGSPUNKT 03 AR...
Notieren Sie die Installations- und Konfiguration...
Vor kurzem sind mehrere Datenanomalien in MySQL o...
Ich lerne derzeit etwas über MySQL-Optimierung. D...
Vorwort: Mybatis-Sonderzeichenverarbeitung, Verar...
Als ich heute Tomcat für den Zugriff auf die Proj...
In diesem Artikelbeispiel wird der spezifische Co...