1. Was ist Docker? (1) Docker ist ein Open-Source-Tool zum Ausführen von Anwendungen in Linux-Containern. Es ist eine leichte „virtuelle Maschine“ Das Logo ist in Form eines blauen Wals gestaltet. Der Wal kann als Host-Rechner angesehen werden, und die Container darüber können als isolierte Container verstanden werden, von denen jeder eine eigene Anwendung enthält. (2) Der Unterschied zwischen Docker und virtuellen Maschinen Als leichtgewichtige Virtualisierungsmethode bietet Docker gegenüber herkömmlichen virtuellen Maschinen erhebliche Vorteile. Der Grund, warum Docker viele Vorteile bietet, ist untrennbar mit den Eigenschaften der Betriebssystemvirtualisierung selbst verbunden. Herkömmliche virtuelle Maschinen erfordern zusätzliche virtuelle Hypervisoren und Betriebssystemebenen virtueller Maschinen, während Docker-Container direkt auf Betriebssystemebene virtualisiert werden. (3) Docker-Nutzungsszenarien Entwickler müssen nun problemlos Anwendungen erstellen können, die auf Cloud-Plattformen laufen. Sie müssen unabhängig von der zugrunde liegenden Hardware sein und jederzeit und überall auf diese Ressourcen zugreifen können. Genau das kann Docker bieten. Die Containertechnologie von Docker erleichtert die Erstellung eines leichten, portablen und autarken Containers für jede Anwendung auf einem Host. Das Verpacken von Anwendungen in diesem Container vereinfacht triviale, sich wiederholende Aufgaben wie die erneute Bereitstellung und das Debuggen und verbessert so die Arbeitseffizienz erheblich. 2. Dockers Kernkonzepte und Installation (1) Spiegel Das Docker-Image (Mage) stellt die Grundlage für die Erstellung von Containern dar. Ähnlich wie ein Snapshot einer virtuellen Maschine kann es als schreibgeschützte Vorlage für die Docker-Container-Engine verstanden werden. Ein Image kann beispielsweise eine vollständige CentOS-Betriebssystemumgebung sein, die als CentOS (2) Behälter Der Container von Dooker ist eine laufende Instanz, die aus einem Image erstellt wurde. Es kann gestartet, gestoppt und gelöscht werden. Jeder erstellte Container ist isoliert und für die anderen unsichtbar, wodurch die Sicherheit der Plattform gewährleistet wird. Sie können sich den Container als eine vereinfachte Linux-Umgebung vorstellen. Docker verwendet Container, um Anwendungen auszuführen und zu isolieren. (3) Lager Das Docker-Repository ist ein Ort, an dem Bilder zentral gespeichert werden. Nachdem Sie Ihr eigenes Bild erstellt haben, können Sie es mit dem Push-Befehl in ein öffentliches oder privates Repository hochladen. Auf diese Weise müssen Sie das Bild beim nächsten Mal, wenn Sie es auf einem anderen Computer verwenden möchten, nur aus dem Repository abrufen. (4) Docker installieren Wenn der Host über Internetzugang verfügt, können Sie es direkt installieren. Konfigurieren Sie yum [root@localhost ~]# rm -rf /etc/yum.repos.d/* [root@localhost ~]# vim /etc/yum.repos.d/a.repo [aa] Name=asd baseurl=Datei:///Medien gpgcheck=0 [root@localhost ~]# mount /dev/cdrom /media/ [root@localhost ~]# yum -y installiere Docker Nachdem die Installation abgeschlossen ist, können Sie Docker starten und so einstellen, dass es beim Booten automatisch gestartet wird [root@localhost ~]# systemctl starte Docker [root@localhost ~]# systemctl aktiviere Docker Symlink von /etc/systemd/system/multi-user.target.wants/docker.service nach /usr/lib/systemd/system/docker.service erstellt. [root@localhost ~]# docker version //Docker-Version anzeigen Client: Version: 1.13.1 API-Version: 1.26 Paketversion: docker-1.13.1-75.git8633870.el7.centos.x86_64 Go-Version: go1.9.4 Git-Commit: 8633870/1.13.1 Gebaut: Freitag, 28. September 2018, 19:45:08 Uhr Betriebssystem/Architektur: linux/amd64 Server: Version: 1.13.1 API-Version: 1.26 (Mindestversion 1.12) Paketversion: docker-1.13.1-75.git8633870.el7.centos.x86_64 Go-Version: go1.9.4 Git-Commit: 8633870/1.13.1 Gebaut: Freitag, 28. September 2018, 19:45:08 Uhr Betriebssystem/Architektur: linux/amd64 Experimentell: falsch Aufgeteilt in Server und Client 3.Docker-Image-Betrieb (1) Suche nach Mirrors (Voraussetzung: der Rechner hat Internetzugang) [root@localhost ~]# Docker-Suche DHCP INDEX NAME BESCHREIBUNG STERNE OFFIZIELL AUTOMATISIERT docker.io docker.io/networkboot/dhcpd Geeignet, um für Sie einen DHCP-Server auszuführen... 43 [OK] docker.io docker.io/joebiellik/dhcpd DHCP-Server läuft unter Alpine Linux 15 [OK] docker.io docker.io/gns3/dhcp Ein DHCP-Container für GNS3 mit dnsmasq 3 [OK] docker.io docker.io/instantlinux/dhcpd-dns-pxe DNS, DHCP und TFTP von einem kleinen Alpi aus bereitstellen ... 2 [OK] docker.io docker.io/ictu/dhcpd-tftpd dhcpd tftpd-Container 1 [OK] docker.io docker.io/marcelwiget/dhcptester Einfache DHCP-Client-Simulation (2) Erhalt des Bildes [root@localhost ~]# docker pull docker.io/network/dhcpd //Laden Sie den DHCP-Server am Anfang des obigen Befehls herunter. Eine andere Möglichkeit besteht darin, den heruntergeladenen DHCP- Erstellen Sie eine CD und legen Sie sie in den Host ein [root@localhost ~]# mount /dev/cdrom /media/ [root@localhost ~]# cd /media/ [root@localhost-Medien]# ls DHCP [root@localhost-Medien]# cp dhcp / [root@localhost-Medien] [root@localhost /]# Docker-Ladung < dhcp fccbfa2912f0: Ebene wird geladen 116,9 MB/116,9 MB e1a9a6284d0d: Ebene wird geladen 15,87 kB/15,87 kB ac7299292f8b: Ebene wird geladen 14,85 kB/14,85 kB a5e66470b281: Ladeebene 5.632 kB/5.632 kB a8de0e025d94: Ebene wird geladen 3.072 kB/3.072 kB e2e29955c5aa: Ebene wird geladen 12,7 MB/12,7 MB 12e14fab4dd4: Ladeebene 49,15 kB/49,15 kB 47bdfd3bbf39: Ebene wird geladen 4.096 kB/4.096 kB Geladenes Image: docker.io/networkboot/dhcpd:latest Laden Sie das Bild auf Ihren lokalen Computer herunter (3) Bildinformationen anzeigen [root@localhost /]# Docker-Bilder REPOSITORY TAG BILD ID //Bild ID ERSTELLT GRÖSSE docker.io/networkboot/dhcpd latest 6f98b6b9b486 vor 19 Monaten 125 MB
[root@localhost /]# docker inspect 6f98b6b9b486 \Bild-ID-Details anzeigen Die detaillierten Informationen des Images umfassen Erstellungszeit, Systemversion, Hostname, Domänenname, Benutzer, Datenträger, Bezeichnung, Betriebssystem, Geräte-ID und andere Informationen. [root@localhost /]# Docker-Tag docker.io/networkboot/dhcpd dhcp:dhcp Erster DHCP: Name. Zweiter DHCP: Label. (4) Löschen des Bildes [root@localhost /]# docker rmi dhcp:dhcp Ohne Tag: dhcp:dhcp 4.Docker-Containerbetrieb Container sind ein weiteres Kernkonzept von Docker. Einfach ausgedrückt ist ein Container eine laufende Instanz eines Images, eine unabhängig laufende Anwendung oder eine Gruppe von Anwendungen und ihre erforderliche Betriebsumgebung, einschließlich Dateisystem, Systembibliothek, Shell-Umgebung usw. Das Image ist eine schreibgeschützte Vorlage, und der Container verleiht dieser schreibgeschützten Vorlage eine zusätzliche beschreibbare Ebene (1) Erstellen und Starten eines Containers [root@localhost /]# docker create -it docker.io/networkboot/dhcpd /bin/bash e392026ddd186d01cbd3306acae15f2f197dc9874a84ea241d347c7fe20a0946 Allgemeine Optionen: -i bedeutet, die Eingabe des Containers offen zu halten: -t bedeutet, Docker ein Pseudoterminal zuweisen zu lassen. [root@localhost /]# docker ps -a \\Laufstatus aller Container anzeigen CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEN e392026ddd18 docker.io/networkboot/dhcpd "/entrypoint.sh /b..." Vor etwa einer Minute Erstellt elegant_goldwasser Die Ausgabeinformationen zeigen die Container-ID-Nummer, das geladene Image, das laufende Programm, die Erstellungszeit, den aktuellen Status, die Portzuordnung, den Containernamen usw. Die Statusspalte „Erstellt“ zeigt an, dass der aktuelle Container neu erstellt wurde und sich in einem gestoppten Zustand befindet. [root@localhost /]# docker start e392026ddd18 \\Starten Sie den Container, die ID oben e392026ddd18 Nachdem der Container gestartet wurde, können Sie sehen, dass sich die Containerstatusspalte auf „UP“ geändert hat, was darauf hinweist, dass sich der Container im gestarteten Status befindet. (2) Containerbetrieb und -beendigung [root@localhost /]# Docker-Container-ID stoppen (3) Einfahrt des Containers [root@localhost /]# docker exec -it e392026ddd18 /bin/bash root@e392026ddd18:/# Der Benutzer kann Befehle über das erstellte Terminal eingeben und den Container über den Exit-Befehl verlassen. root@e392026ddd18:/# ls bin core entrypoint.sh home lib64 mnt proc run srv tmp var boot dev usw lib media opt root sbin sys usr root@e392026ddd18:/# beenden Ausfahrt (4) Export und Import von Containern Der Container wird minimiert, wodurch einige Befehle unbrauchbar werden. Daher müssen Sie sie zur Konfiguration aus dem Container auf den lokalen Computer exportieren und dann in den Container importieren. Der Exportbefehl lautet wie folgt: [root@localhost /]# docker export e392026ddd18>/etc/dhcp/dhcpd.conf Die Zufallszahl ist die Container-ID-Nummer Exportieren Sie die DHCP-Hauptkonfigurationsdatei zur Konfiguration. Der Importbefehl lautet wie folgt: [root@localhost /]# docker import /etc/dhcp/dhcpd.conf > e392026ddd18 (5) Löschen eines Containers Mit dem Befehl dockerrm können Sie einen beendeten Container löschen. Ein Image kann mehrere Container enthalten [root@localhost /]# docker stop e392026ddd18 \\Stoppen Sie zuerst e392026ddd18 [root@localhost /]# docker rm e392026ddd18 \\e392026ddd18 erneut löschen [root@localhost /]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 5. Docker-Ressourcenkontrolle Cgroup ist die Abkürzung für Controlgroup, einen vom Linux-Kernel bereitgestellten Mechanismus zur Begrenzung der verwendeten physischen Ressourcen. Zu diesen Ressourcen gehören hauptsächlich CPU, Speicher und blkio. Im Folgenden wird erläutert, wie Docker den Cgroup-Mechanismus zur Verwaltung in diesen drei Aspekten verwendet. (1) Begrenzung der CPU-Auslastung Legen Sie beispielsweise die CPU-Auslastung des Containers 60ff4594cc73 auf 20000 und das CPU-Auslastungslimit auf 20 % fest: [root@localhost ~]# echo 20000 >/sys/fs/ cgroup/ cpu/ system. slice/docker-60ff4594cc73b5474477 636b25b41f 16e1 66a3606aed22 6522d420d0c296990d. scope/cpu . cfs_ quota _us (2) Mehrere Aufgaben teilen sich die CPU anteilig Um beispielsweise drei neu erstellte Container A, B und C auszuführen und CPU-Ressourcen im Verhältnis 1:1:2 zu belegen, können Sie es wie folgt ausführen: [root@localhost /]# docker run -tid --cpu-shares 1024 +Mirror A [root@localhost /]# docker run -tid --cpu-shares 1024 +Mirror B [root@localhost /]# docker run -tid --cpu-shares 2048 +image C Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: MySQL 8.x MSI-Version Installations-Tutorial mit Bildern und Text
>>: Ein seltener Fehler und eine Lösung für die vollständige SQL Server-Sicherung
Vorschauadresse: https://ovsexia.gitee.io/leftfix...
Vorwort: Ich habe Win10 neu installiert und gleic...
Eine Mehrfachauswahl ist ein Benutzeroberflächene...
1. Problemeinführung Nehmen Sie ein Szenario an, ...
Vorwort Das Projekt stellt Anforderungen an Karte...
Inhaltsverzeichnis Beschreibung der Installations...
1. Fügen Sie das Plug-In hinzu und fügen Sie die ...
Pseudoelemente und Pseudoklassen Apropos, schauen...
Vorwort Bootstrap, das beliebteste Front-End-Entw...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Inhaltsverzeichnis 1. Beispielcode 2. Sehen Sie d...
Vorwort Die logische Datenträgerverwaltung von lv...
Inhaltsverzeichnis App.vue sub1.vue sub2.vue Zusa...
Das Betriebssystem für die folgenden Inhalte ist:...