Einführung
In diesem Lab lernen Sie, wie Sie den Befehl docker info verwenden, um umfassende Informationen über Ihr Docker-System anzuzeigen. Sie beginnen damit, den grundlegenden Befehl docker info auszuführen, um Details über den Docker-Daemon anzuzeigen, einschließlich der Anzahl der Container und Images, des Speicherdrivers und anderer systemweiter Informationen.
Nach der grundlegenden Anzeige werden Sie untersuchen, wie Sie die Ausgabe des Befehls docker info auf verschiedene Weise formatieren können. Insbesondere lernen Sie, wie Sie die Ausgabe als JSON formatieren, um sie leichter zu analysieren, und wie Sie eine benutzerdefinierte Vorlage verwenden, um nur die spezifischen Informationen anzuzeigen, die Sie benötigen. In diesem Lab erhalten Sie die Fähigkeiten, um Docker-Systeminformationen effektiv abzurufen und zu interpretieren.
Grundlegende Docker-Systeminformationen anzeigen
In diesem Schritt lernen Sie, wie Sie mit dem Befehl docker info grundlegende Informationen über Ihr Docker-System anzeigen können. Dieser Befehl liefert Details über den Docker-Daemon, einschließlich der Anzahl der Container und Images, des Speicherdrivers und anderer systemweiter Informationen.
Öffnen Sie das Terminal in der LabEx-Umgebung. Sie können den Befehl docker info direkt ausführen.
docker info
Sie sollten eine Ausgabe ähnlich der folgenden sehen (die genauen Details variieren je nach Ihrer Umgebung):
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.10.4
Build: 8842a472b58241d32996951f172f32259cd758e5
compose: Docker Compose (Docker Inc.)
Version: v2.17.2
Build: 6833407
scan: Docker Scan (Docker Inc.)
Version: v0.23.0
Build: 2c50987
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.21
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9ba4b2555a59f71c4c1c1897e93a540b0c52b883
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.15.0-76-generic
Operating System: Ubuntu 22.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.84GiB
Name: labex-vm
ID: 6111111111111111111111111111111111111111111111111111111111111111
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them.
Die Ausgabe bietet einen umfassenden Überblick über Ihre Docker-Installation und ihren aktuellen Zustand. Sie können Informationen wie die Docker-Version, die Anzahl der laufenden Container und Images, den verwendeten Speicherdriver sowie Details über das zugrunde liegende Betriebssystem und die Hardware sehen.
docker info-Ausgabe im JSON-Format anzeigen
Im vorherigen Schritt haben Sie die Standardausgabe des Befehls docker info gesehen. Diese Ausgabe ist für Menschen lesbar, kann jedoch programmgesteuert schwierig zu analysieren sein. Docker bietet die Option --format, um das Ausgabeformat anzupassen. In diesem Schritt lernen Sie, wie Sie die Ausgabe von docker info als JSON formatieren können.
Die Option --format nutzt das text/template-Paket von Go. Um die Informationen als JSON auszugeben, können Sie die Vorlage . | json verwenden.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
docker info --format '{{json .}}'
Sie sollten die gleichen Informationen wie zuvor sehen, aber jetzt als ein einzelnes JSON-Objekt formatiert:
{
"Client": {
"Context": "default",
"DebugMode": false,
"Plugins": {
"buildx": {
"Version": "v0.10.4",
"Build": "8842a472b58241d32996951f172f32259cd758e5"
},
"compose": {
"Version": "v2.17.2",
"Build": "6833407"
},
"scan": {
"Version": "v0.23.0",
"Build": "2c50987"
}
}
},
"Server": {
"Containers": 0,
"ContainersRunning": 0,
"ContainersPaused": 0,
"ContainersStopped": 0,
"Images": 0,
"ServerVersion": "20.10.21",
"StorageDriver": "overlay2",
"LoggingDriver": "json-file",
"CgroupDriver": "systemd",
"CgroupVersion": "2",
"Plugins": {
"Volume": ["local"],
"Network": ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"],
"Log": [
"awslogs",
"fluentd",
"gcplogs",
"gelf",
"journald",
"json-file",
"local",
"logentries",
"splunk",
"syslog"
]
},
"Swarm": {
"NodeID": "",
"LocalNodeState": "inactive",
"ControlAvailable": false,
"Error": null,
"RemoteManagers": null
},
"Runtimes": {
"io.containerd.runc.v2": {
"path": "io.containerd.runc.v2"
},
"io.containerd.runtime.v1.linux": {
"path": "io.containerd.runtime.v1.linux"
},
"runc": {
"path": "runc"
}
},
"DefaultRuntime": "runc",
"InitBinary": "docker-init",
"ContainerdVersion": "9ba4b2555a59f71c4c1c1897e93a540b0c52b883",
"RuncVersion": "v1.1.4-0-g5fd4c4d",
"InitVersion": "de40ad0",
"SecurityOptions": ["apparmor", "seccomp", "cgroupns"],
"KernelVersion": "5.15.0-76-generic",
"OperatingSystem": "Ubuntu 22.04.2 LTS",
"OSType": "linux",
"Architecture": "x86_64",
"NCPU": 2,
"MemTotal": 4123631616,
"Name": "labex-vm",
"ID": "6111111111111111111111111111111111111111111111111111111111111111",
"DockerRootDir": "/var/lib/docker",
"DebugMode": false,
"ExperimentalBuild": false,
"InsecureRegistries": ["127.0.0.0/8"],
"LiveRestoreEnabled": false,
"Warnings": [
"No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them."
]
}
}
Das Formatieren der Ausgabe als JSON ist nützlich, wenn Sie die Informationen mit anderen Tools oder Skripten verarbeiten möchten.
docker info-Ausgabe mit einer benutzerdefinierten Vorlage formatieren
Neben der Formatierung der Ausgabe als JSON können Sie die Option --format mit einer benutzerdefinierten Go-Vorlage verwenden, um spezifische Informationen aus der Ausgabe von docker info anzuzeigen. Dies ermöglicht es Ihnen, nur die Daten zu extrahieren, die Sie interessieren.
Der Befehl docker info liefert eine Datenstruktur, auf die Sie innerhalb der Vorlage zugreifen können. Beispielsweise können Sie die Vorlage 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}' verwenden, um die Docker-Server-Version und die Gesamtzahl der CPUs anzuzeigen.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
docker info --format 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Server Version: 20.10.21, CPUs: 2
In dieser Vorlage:
{{.ServerVersion}}greift auf das FeldServerVersionaus der Datenstruktur vondocker infozu.{{.NCPU}}greift auf das FeldNCPUzu, das die Anzahl der CPUs darstellt.
Sie können die JSON-Ausgabe aus dem vorherigen Schritt untersuchen, um andere Felder zu identifizieren, die Sie in Ihre benutzerdefinierte Vorlage aufnehmen möchten. Beispielsweise könnten Sie die Vorlage 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}' verwenden, um das Betriebssystem und das Docker-Wurzelverzeichnis anzuzeigen.
Versuchen Sie, diesen Befehl auszuführen:
docker info --format 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
OS: Ubuntu 22.04.2 LTS, Docker Root Dir: /var/lib/docker
Die Verwendung von benutzerdefinierten Vorlagen gibt Ihnen eine feingranulare Kontrolle über die Ausgabe des Befehls docker info, was es einfacher macht, Docker-Informationen in Skripts oder Berichte zu integrieren.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie den Befehl docker info verwenden, um umfassende Informationen über Ihr Docker-System anzuzeigen. Sie haben begonnen, indem Sie den grundlegenden Befehl docker info ausgeführt haben, um Details über den Docker-Daemon anzuzeigen, einschließlich der Anzahl der Container und Images, des Storage Drivers und anderer systemweiter Informationen.
Darüber hinaus haben Sie untersucht, wie Sie die Ausgabe des Befehls docker info formatieren können. Sie haben gelernt, die Informationen im JSON-Format auszugeben, um die Verarbeitung und Integration mit anderen Tools zu erleichtern, sowie wie Sie eine benutzerdefinierte Go-Vorlage verwenden, um spezifische Informationen in einem maßgeschneiderten Format anzuzeigen. Diese Formatierungsoptionen bieten Flexibilität bei der Art und Weise, wie Sie auf die Details des Docker-Systems zugreifen und nutzen.



