Docker-Kern und spezifische Verwendung der Installation

Docker-Kern und spezifische Verwendung der Installation

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.
Wie in der Abbildung gezeigt:

(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
Ein Image; es kann eine Anwendung sein, die MySQL installiert (ein sogenanntes MySQL-Image) usw.

(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
  • REPOSITORY: Das Repository, zu dem das Bild gehört.
  • TAG: Die Tag-Informationen des Bildes, die verschiedene Bilder im selben Repository kennzeichnen.
  • BILD-ID: Die eindeutige ID-Nummer des Bildes, die das Bild eindeutig identifiziert.
  • ERSTELLT: Der Zeitpunkt, zu dem das Bild erstellt wurde.
  • ERSTELLT: Der Zeitpunkt, zu dem das Bild erstellt wurde.
[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 &gt;/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:
  • Detaillierte Erläuterung der Installation von Docker und der Ausführung von Befehlen unter CentOS 7
  • CentOS7 installiert Docker, um das Problem zu lösen, dass es nicht gestartet werden kann
  • Detaillierte Schritte zur Installation von Docker auf CentOS7
  • Installieren und Ausführen einer MySQL-Instanz auf Docker
  • Methoden und Vorsichtsmaßnahmen zur Installation einer Docker-Umgebung unter CentOS 7
  • Spezifische Schritte zur Installation von SSH in Docker CentOS7
  • Schritte zur Installation von Docker in Centos 6.5 (Kurzversion)
  • Detaillierte Methode zur Installation von Docker Version 1.12.3 unter CentOS 7.2

<<:  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

Artikel empfehlen

Ausführliche Erläuterung der Vue-Komponente „Multi-Select-Liste“

Eine Mehrfachauswahl ist ein Benutzeroberflächene...

MySQL-Datenbank löscht doppelte Daten und behält nur eine Methodeninstanz bei

1. Problemeinführung Nehmen Sie ein Szenario an, ...

CSS Polarkoordinaten Beispielcode

Vorwort Das Projekt stellt Anforderungen an Karte...

Verwendung des Fokus-innerhalb-Selektors von CSS3

Pseudoelemente und Pseudoklassen Apropos, schauen...

...

11 Gründe, warum Bootstrap so beliebt ist

Vorwort Bootstrap, das beliebteste Front-End-Entw...

Auszeichnungssprache - Phrasenelemente

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Eine kurze Diskussion zum Implementierungsprinzip des Vue-Slots

Inhaltsverzeichnis 1. Beispielcode 2. Sehen Sie d...

So erstellen Sie LVM für das XFS-Dateisystem in Ubuntu

Vorwort Die logische Datenträgerverwaltung von lv...

Installationstutorial für MySQL 5.1 und 5.7 unter Linux

Das Betriebssystem für die folgenden Inhalte ist:...