Detaillierte Erläuterung gängiger Vorgänge für Docker-Images und -Container

Detaillierte Erläuterung gängiger Vorgänge für Docker-Images und -Container

Bildbeschleuniger

Manchmal ist es schwierig, Bilder vom Docker Hub in China abzurufen. In diesem Fall können Sie einen Bildbeschleuniger konfigurieren. Viele inländische Cloud-Dienstanbieter bieten inländische Beschleunigerdienste an, beispielsweise:

NetEase Cloud Accelerator https://hub-mirror.c.163.com
Alibaba Cloud Accelerator (zum Erhalt müssen Sie sich anmelden): https://cr.console.aliyun.com/cn-hangzhou/mirrors

Alle großen inländischen Cloud-Dienstanbieter bieten Docker-Image-Beschleunigungsdienste an. Es wird empfohlen, den entsprechenden Image-Beschleunigungsdienst entsprechend der Cloud-Plattform auszuwählen, auf der Docker ausgeführt wird. Weitere Einzelheiten finden Sie in der offiziellen Dokumentation.

Schreiben Sie im CentOS7-System bitte den folgenden Inhalt in /etc/docker/daemon.json (wenn die Datei nicht existiert, erstellen Sie bitte eine neue Datei)

[root@docker01 ~]# vim /etc/docker/daemon.json
{
 "Registrierungsspiegel": [
  „https://hub-mirror.c.163.com“
 ]
}

Beachten Sie, dass Sie sicherstellen müssen, dass die Datei der JSON-Spezifikation entspricht, da Docker sonst nicht gestartet werden kann.

Starten Sie den Dienst anschließend neu.

systemctl daemon-reload
systemctl Neustart Docker

Prüfen Sie, ob der Beschleuniger wirksam ist

Führen Sie den folgenden Befehl aus. Wenn im Ergebnis der folgende Inhalt angezeigt wird, bedeutet dies, dass die Konfiguration erfolgreich war.

[root@docker01 ~]# Docker-Info # Informationen zum gesamten System anzeigen………………
Registrierungsspiegel:
 https://hub-mirror.c.163.com/
Live-Wiederherstellung aktiviert: false

WARNUNG: bridge-nf-call-iptables ist deaktiviert
WARNUNG: bridge-nf-call-ip6tables ist deaktiviert

Docker-Spiegelvorgang

Hinweis: Bevor Docker einen Container ausführt, muss das entsprechende Image lokal vorhanden sein. Wenn das Image nicht lokal vorhanden ist, lädt Docker das Image aus dem Image-Repository herunter.

SucheSuchspiegel

[root@docker01 ~]# Docker-Suche Centos
NAME BESCHREIBUNG STERNE OFFIZIELL AUTOMATISIERT
centos Der offizielle Build von CentOS. 5934 [OK]    
ansible/centos7-ansible Ansible auf Centos7 128 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
consol/centos-xfce-vnc Centos-Container mit „headless“ VNC-Sitzung… 114 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL-Datenbankserver 74        
………… 

Laden Sie das Bild aus dem Spiegelzentrum herunter

# Format: Docker Pull <Image-Name>:<Tag>, wenn kein Tag vorhanden ist, wird standardmäßig das neueste verwendet
[root@docker01 ~]# docker pull centos:latest
neuestes: Aus Bibliothek/CentOS ziehen
8a29a15cefae: Ziehen abgeschlossen 
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Neueres Image für Centos:latest heruntergeladen

push Schieben Sie das Bild in die Bildmitte

Format: Docker Push <Imagename>:<Tag>
[root@docker01 ~]# docker push registry.cn-beijing.aliyuncs.com/google_registry/centos:latest

Hinweis: Wenn du Fragen hast, kannst du diese vorerst ignorieren. Im Artikel zum Bau eines privaten Lagers wird es später noch einmal erklärt.

Bilder Liste der Bilder

[root@docker01 ~]# Docker-Images # oder Docker-Image ls
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
centos latest 470671670cac vor 2 Monaten 237MB

Speichern Sie das Bild lokal

# Format: docker save -o <gespeicherter Dateiname> <image_name:tag>|<image_id>
[root@docker01 docker_test]# docker save -o centos_docker_20200413.tar centos:latest 
[root@docker01 docker_test]# ll -h
insgesamt 234M
-rw------ 1 root root 234M 13. April 16:21 centos_docker_20200413.tar

rmi Bild löschen

# Format: docker rmi <image_name:tag>|<image_id>
[root@docker01 docker_test]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
centos latest 470671670cac vor 2 Monaten 237MB
[root@docker01 docker_test]# docker rmi 470671670cac # Lösche das Image [root@docker01 docker_test]# docker images
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE

ladenBild importieren

# Format: docker load -i <image_file>
[root@docker01 docker_test]# docker load -i centos_docker_20200413.tar
[root@docker01 docker_test]# Docker-Bilder 
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
centos latest 470671670cac vor 2 Monaten 237MB

Etikett

# Format: Docker-Tag QUELLBILD[:TAG] ZIELBILD[:TAG]
[root@docker01 docker_test]# Docker-Bilder 
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
centos latest 470671670cac vor 2 Monaten 237MB 
[root@docker01 docker_test]# Docker-Tag Centos:neueste Centos:20200413
[root@docker01 docker_test]# Docker-Bilder 
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
centos 20200413 470671670cac vor 2 Monaten 237 MB
centos latest 470671670cac vor 2 Monaten 237MB

Verwendung: Geben Sie dem Docker-Image nach Bedarf ein neues Tag.

info zeigt Informationen über das gesamte System an

[root@docker01 ~]# Docker-Info 
Behälter: 0
 Laufen: 0
 Pausiert: 0
 Angehalten: 0
Bilder: 1
Serverversion: 18.06.3-ce
Speichertreiber: overlay2
 Unterstützendes Dateisystem: xfs
 Unterstützt d_type: true
 Native Overlay Diff: wahr
Protokollierungstreiber: JSON-Datei
Cgroup-Treiber: cgroupfs
Plugins:
 Lautstärke: lokal
 Netzwerk: Bridge-Host Macvlan Null-Overlay
 Protokoll: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Schwarm: inaktiv
Laufzeiten: runc
Standardlaufzeit: runc
Binärdatei initialisieren: docker-init
containerd-Version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc-Version: a592beb5bc4c4092b1b1bac971afed27687340c5
Init-Version: fec3683
Sicherheitsoptionen:
 sicherheitskomp
 Profil: Standard
Kernel-Version: 3.10.0-1062.el7.x86_64
Betriebssystem: CentOS Linux 7 (Core)
Betriebssystemtyp: Linux
Architektur: x86_64
CPUs: 2
Gesamtspeicher: 1,777 GiB
Bezeichnung: docker01
ID: XIHU:XNWU:II7A:YXUH:BOZ3:JSGG:J3P2:CU2Z:5QHA:5Y64:PZ4V:62DI
Docker-Stammverzeichnis: /var/lib/docker
Debug-Modus (Client): false
Debug-Modus (Server): false
Registrierung: https://index.docker.io/v1/
Beschriftungen:
Experimentell: falsch
Unsichere Register:
 127.0.0.0/8
Registrierungsspiegel:
 https://hub-mirror.c.163.com/
Live-Wiederherstellung aktiviert: false

WARNUNG: bridge-nf-call-iptables ist deaktiviert
WARNUNG: bridge-nf-call-ip6tables ist deaktiviert

Systemabbild-Volume-Ansicht

Außerdem ist zu beachten, dass die Gesamtgröße der Images in der Docker-Image-LS-Liste nicht dem tatsächlichen Datenträgerverbrauch aller Images entspricht. Da Docker-Images mehrschichtige Speicherstrukturen sind, die übernommen und wiederverwendet werden können, können verschiedene Images gemeinsame Ebenen haben, da sie dasselbe Basis-Image verwenden. Da Docker Union FS verwendet, muss nur eine Kopie derselben Ebene gespeichert werden, sodass der tatsächlich belegte Festplattenspeicher des Images wahrscheinlich viel kleiner ist als die Summe der Imagegrößen in dieser Liste.

Mit dem folgenden Befehl können Sie einfach den von Bildern, Containern und Datenträgern belegten Speicherplatz anzeigen.

[root@docker01 docker_test]# Docker-System df
TYP GESAMT AKTIV GRÖSSE WIEDERVERWENDBAR
Bilder 2 0 440,1 MB 440,1 MB (100 %)
Behälter 0 0 0B 0B
Lokale Datenträger 0 0 0B 0B
Cache erstellen 0 0 0B 0B

inspect zeigt Details eines Bildes oder Containers an

# Format: docker inspect <Bild-ID>|<Bildname>|<Container-ID>|<Containername>
[root@docker01 ~]# docker inspect centos:latest # Bilddetails anzeigen [root@docker01 ~]# docker inspect 67ba647b0151 # Containerdetails anzeigen

Docker-Container-Betrieb

Ausführen, um einen Container zu erstellen

# Format: Docker Run [OPTIONEN] BILD [BEFEHL] [ARG…]
[root@docker01 ~]# docker run -i -t --name centos01 centos:latest /bin/bash
[root@f7c4da3cecad /]# # Jetzt haben Sie den Docker-Container betreten [root@f7c4da3cecad /]# exit # Verlassen Sie den Container, der Container wird angehalten [normale Situation]
[root@docker01 ~]

Parameterbeschreibung:

-i interaktive Operation
-t ein Terminal zuweisen
--name Der Name des auszuführenden Containers Der Befehl, der am Ende von /bin/bash ausgeführt werden soll

PS-Ansichtscontainer

[root@docker01 ~]# docker ps # Den laufenden Container anzeigen CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEN
[root@docker01 ~] 
[root@docker01 ~]# docker ps -a # Alle Container anzeigen, einschließlich laufender und gestoppter CONTAINER ID IMAGE BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 4 Minuten Beendet (0) vor 36 Sekunden centos01

startStarten Sie den Container

# Format: docker start <Containername>|<Container-ID>
[root@docker01 ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 10 Minuten Beendet (0) vor 3 Sekunden centos01
[root@docker01 ~]# docker start f7c4da3cecad # Container f7c4da3cecad starten
[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 10 Minuten Up 3 Sekunden centos01

restart startet den Container neu

# Format: Docker-Neustart <Containername>|<Container-ID>
[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 15 Minuten Up 4 Minuten centos01
[root@docker01 ~]# docker restart f7c4da3cecad # Container f7c4da3cecad neu starten
[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 15 Minuten 1 Sekunde lang centos01

stopStoppen Sie den Container

# Format: Docker Stop <Containername>|<Container-ID>
[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 3 Stunden Up 4 Minuten centos01
[root@docker01 ~]# docker stop f7c4da3cecad # Container f7c4da3cecad stoppen
[root@docker01 ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 3 Stunden Beendet (0) vor 10 Sekunden centos01

rm entfernt den Container

# Format: docker rm <Containername>|<Container-ID>
[root@docker01 ~]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 3 Stunden Beendet (0) vor 10 Sekunden centos01
[root@docker01 ~]# docker rm f7c4da3cecad # Löschen Sie den gestoppten Container f7c4da3cecad

Hinweis: Wenn Sie einen laufenden Container zwangsweise löschen möchten, verwenden Sie docker rm -f <Container-ID>. Um ein versehentliches Löschen zu verhindern, wird jedoch nicht empfohlen, das Löschen von Containern in Produktionsumgebungen zu erzwingen.

Container umbenennen umbenennen

# Format: Docker umbenennen CONTAINER NEUER_NAME
[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
67ba647b0151 centos:latest "/bin/bash" Vor etwa einer Minute Up Vor etwa einer Minute centos01
[root@docker01 ~]# Docker umbenennen 67ba647b0151 centos001 # Container umbenennen [root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
67ba647b0151 centos:latest "/bin/bash" vor 2 Minuten Up Etwa eine Minute centos001

exec in einen Container oder Ausführen eines Befehls in einem laufenden Container

Betreten des Containers

[root@docker01 ~]# docker exec -it f7c4da3cecad bash
[root@f7c4da3cecad /]#

Hinweis: Es wird nicht empfohlen, den Container über Docker Attach aufzurufen.

Lassen Sie den angegebenen Container Befehle außerhalb des Containers ausführen

# Die Option -t ist nicht erforderlich, da kein TTY-Terminal zugewiesen werden muss [root@docker01 ~]# docker exec -i f7c4da3cecad bash -c "ps -ef"
UID PID PPID C STIME TTY ZEIT CMD
root 1 0 0 10:12 pts/0 00:00:00 /bin/bash
root 78 0 0 10:19 ? 00:00:00 ps -ef

cp kopiert Dateien oder Verzeichnisse

Kopieren Sie die Hostdatei oder das Hostverzeichnis in den Docker-Container.

[root@docker01 ~]# docker exec -i 67ba647b0151 bash -c "ls -l /root"
insgesamt 12
-rw------ 1 root root 2366 13. Januar 21:49 anaconda-ks.cfg
-rw-r--r-- 1 root root 435 13. Jan. 21:49 anaconda-post.log
-rw------ 1 root root 2026 Jan 13 21:49 original-ks.cfg
[root@docker01 ~] 
[root@docker01 ~]# docker cp /usr/bin/telnet 67ba647b0151:/root/ # Datei kopieren[root@docker01 ~]# docker cp /root/basedOptimi 67ba647b0151:/root/ # Verzeichnis kopieren[root@docker01 ~]# docker exec -i 67ba647b0151 bash -c "ls -l /root"
insgesamt 112
-rw------ 1 root root 2366 13. Januar 21:49 anaconda-ks.cfg
-rw-r--r-- 1 root root 435 13. Jan. 21:49 anaconda-post.log
drwxr-xr-x 2 root root 30. März 8 19:59 basedOptimi
-rw------ 1 root root 2026 Jan 13 21:49 original-ks.cfg
-rwxr-xr-x 1 root root 101776 3. August 2017 Telnet

Dateien oder Verzeichnisse im Docker-Container auf den Host-Rechner kopieren

[root@docker01 ~]# docker cp 67ba647b0151:/root/original-ks.cfg /root/ # Datei kopieren [root@docker01 ~]# docker cp 67ba647b0151:/etc /root/ # Verzeichnis kopieren 

ProtokolleContainerprotokolle anzeigen

[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
f7c4da3cecad centos:latest "/bin/bash" vor 3 Stunden 1 Sekunde lang centos01
# Container-Protokolle abrufen [root@docker01 ~]# docker logs -f --tail 500 f7c4da3cecad
…………

Parameterbeschreibung:

-f Ausgabe kontinuierlich drucken
--tail 500 druckt die letzten 500 Zeilen des Protokolls

Statistiken zur Ressourcennutzung von Containern

Kann zur Überwachung verwendet werden

[root@docker01 ~]# docker stats <Container-ID>|<Containername> # Kontinuierliche Überwachung [root@docker01 ~]# docker stats --no-stream <Container-ID>|<Containername> # Keine kontinuierliche Überwachung, nur das erste zurückgegebene Ergebnis wird angezeigt 

Im obersten Container laufende Prozesse

[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
67ba647b0151 centos:latest "/bin/bash" vor 2 Stunden Up 2 Stunden centos001 
# Informationen zu den im Container ausgeführten Prozessen anzeigen [root@docker01 ~]# docker top 67ba647b0151
UID PID PPID C STIME TTY ZEIT CMD
root 3302 3285 0 21:13 pts/0 00:00:00 /bin/bash

Der Port-Container bildet einen bestimmten Port ab

Die Container-Mapping-Ports sind: zufälliges Port-Mapping, Angabe eines einzelnen Port-Mappings, Angabe mehrerer Port-Mappings

Holen Sie sich das Bild

[root@docker01 ~]# docker pull registry.cn-beijing.aliyuncs.com/google_registry/nginx:1.17
[root@docker01 ~]# Docker-Tag ed21b7a8aee9 nginx:1.17
[root@docker01 ~]# Docker-Bilder | grep 'nginx'
nginx 1.17 ed21b7a8aee9 vor 2 Wochen 127 MB
registry.cn-beijing.aliyuncs.com/google_registry/nginx 1.17 ed21b7a8aee9 vor 2 Wochen 127 MB

Zufällige Ports zuordnen

[root@docker01 ~]# docker run -d -P --name nginx01 nginx:1.17
e90c9faaf8e3387920dd9763bf5c7df9dd17856673868bb512cec78741ff71dc
[root@docker01 ~]# Docker ps 
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
e90c9faaf8e3 nginx:1.17 „nginx -g ‚Daemon von …‘“ vor 3 Sekunden. 2 Sekunden aktiv. 0.0.0.0:1025->80/tcp nginx01

veranschaulichen:

0.0.0.0:1025->80/tcp Der erste Teil ist der Host-Port und der zweite Teil ist der Container-Port

Containerprotokolle:

[root@docker01 ~]# docker logs -f --tail 500 nginx01

Browserzugriff:

Einen einzelnen angegebenen Port zuordnen

[root@docker01 ~]# docker run -d -p 81:80 --name nginx02 nginx:1.17
04478222f0dc981883f25504164be3af7da49248886cee7386ccc89b80cc57a1
[root@docker01 ~]# docker ps | grep 'nginx02'
04478222f0dc nginx:1.17 „nginx -g ‚Daemon von …‘“ vor 29 Sekunden. Vor 28 Sekunden aktiv 0.0.0.0:81->80/tcp nginx02

Browserzugriff:

Mehrere angegebene Ports zuordnen

[root@docker01 ~]# docker run -d -p 85:80 -p 445:443 --name nginx03 nginx:1.17
5886e52ff8e934bc827c8d7753a532b9062bd045799d0658a008e371e6ecd09c
[root@docker01 ~]# docker ps | grep 'nginx03'
5886e52ff8e9 nginx:1.17 „nginx -g ‚Daemon von …‘“ vor 12 Sekunden. Vor 11 Sekunden aktiv. 0.0.0.0:85->80/tcp, 0.0.0.0:445->443/tcp nginx03

Empfohlene Lektüre
1. Docker-Einführung und -Installation

Dies ist das Ende dieses Artikels über allgemeine Vorgänge von Docker-Images und -Containern. Weitere relevante Docker-Images und Containervorgänge 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:
  • Beispiel für das Einrichten eines privaten Docker-Image-Repository auf einem CentOS 7.2-Server
  • Zusammenfassung gängiger Docker-Befehle: Installation, Spiegelung und grundlegende Containervorgänge
  • So löschen Sie den in Docker erstellten Container
  • Zusammenfassung und ausführliche Erläuterung der Docker-Container-Bedienungsanleitung
  • Tutorial zum Importieren und Exportieren von Docker-Containern
  • So installieren Sie Docker auf einem Linux-System und melden sich über SSH beim Docker-Container an
  • So mounten Sie das Host-Verzeichnis im Docker-Container
  • Lösung zum Verlassen des Docker-Containers
  • Erste Schritte mit IPython und Docker-Containern

<<:  So implementieren Sie eine geplante automatische Sicherung von MySQL unter CentOS7

>>:  Vue3 realisiert den Bildlupeneffekt

Artikel empfehlen

Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status

Bei einem aktuellen Problem gibt es folgendes Phä...

Implementierung der Parametersprungfunktion im Vue-Projekt

Seitenbeschreibung:​ Hauptseite: Name —> shish...

Detaillierte Erklärung der MySQL-Injektion ohne Kenntnis des Spaltennamens

Vorwort Ich habe in letzter Zeit das Gefühl, dass...

So verwenden Sie Nginx zur Simulation einer Blue-Green-Bereitstellung

Dieser Artikel stellt die Blue-Green-Bereitstellu...

Detaillierte Erklärung zur Verwendung der Clip-Path-Eigenschaft in CSS

Verwendung von Clip-Pfaden Polygon Der Wert setzt...

So konfigurieren Sie NAS unter Windows Server 2019

Vorwort Dieses Tutorial installiert die neuste Ve...

Praxis der Bereitstellung von in Python geschriebenen Webanwendungen mit Docker

Inhaltsverzeichnis 1. Docker installieren 2. Code...

Einführung in das Enctype-Attribut des Form-Tags und seine Anwendungsbeispiele

Enctype: Gibt den Kodierungstyp an, der vom Browse...

Lösen Sie das Problem, dass die mit nginx erhaltene IP-Adresse 127.0.0.1 ist

Holen Sie sich das IP-Tool importiere lombok.exte...

Lernen Sie schnell die MySQL-Grundlagen

Inhaltsverzeichnis SQL verstehen SELECT verstehen...