Suche…


Syntax

  • Docker inspizieren [OPTIONEN] CONTAINER | IMAGE [CONTAINER | IMAGE ...]

Containerinformationen abrufen

Um alle Informationen zu einem Container zu erhalten, können Sie Folgendes ausführen:

docker inspect <container>

Holen Sie sich bestimmte Informationen aus einem Container

Sie können bestimmte Informationen aus einem Container abrufen, indem Sie Folgendes ausführen:

docker inspect -f '<format>' <container>

Zum Beispiel können Sie die Netzwerkeinstellungen abrufen, indem Sie Folgendes ausführen:

docker inspect -f '{{ .NetworkSettings }}' <container>

Sie können auch nur die IP-Adresse erhalten:

docker inspect -f '{{ .NetworkSettings.IPAddress }}' <container>

Der Parameter -f bedeutet formatiert und erhält eine Go-Vorlage als Eingabe, um das zu erwartende Format zu formatieren. Dies wird jedoch nicht zu einer schönen Rendite führen.

docker inspect -f '{{ json .NetworkSettings }}' {{containerIdOrName}}

Das Json-Schlüsselwort gibt die Rückgabe als JSON zurück.

Zum Abschluss noch ein kleiner Tipp: Verwenden Sie Python, um die Ausgabe-JSON zu formatieren:

docker inspect -f '{{ json .NetworkSettings }}' <container> | python -mjson.tool

Und voila, Sie können alles auf dem Docker inspizieren abfragen und es in Ihrem Terminal schön aussehen lassen.

Es ist auch möglich, ein Dienstprogramm namens " jq " zu verwenden, um die docker inspect Befehlsausgabe bei der Befehlsausgabe zu unterstützen.

docker inspect -f '{{ json .NetworkSettings }}' aa1 | jq [.Gateway]

Der obige Befehl gibt die folgende Ausgabe zurück:

[
  "172.17.0.1"
]

Diese Ausgabe ist eigentlich eine Liste, die ein Element enthält. Manchmal zeigt die docker inspect eine Liste mit mehreren Elementen an, und Sie möchten möglicherweise auf ein bestimmtes Element verweisen. Wenn Config.Env beispielsweise mehrere Elemente enthält, können Sie mit index auf das erste Element dieser Liste verweisen:

docker inspect --format '{{ index (index .Config.Env) 0 }}' <container>

Das erste Element ist bei Null indiziert, das heißt, das zweite Element dieser Liste befindet sich am Index 1 :

docker inspect --format '{{ index (index .Config.Env) 1 }}' <container>

Mit len es möglich, die Anzahl der Elemente der Liste abzurufen:

docker inspect --format ‘{{ len .Config.Env }}’ <container>

Bei negativen Zahlen kann auf das letzte Element der Liste verwiesen werden:

docker inspect –format “{{ index .Config.Cmd $[$(docker inspect –format ‘{{ len .Config.Cmd }}’ <container>)-1]}}” <container>

Einige docker inspect Informationen werden als Schlüsselwörterbuch bezeichnet: Wert, hier ist ein Auszug aus einem docker inspect Inspect eines Jess / Spotify-Containers

"Config": { "Hostname": "8255f4804dde", "Domainname": "", "User": "spotify", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "DISPLAY=unix:0", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "HOME=/home/spotify" ], "Cmd": [ "-stylesheet=/home/spotify/spotify-override.css" ], "Image": "jess/spotify", "Volumes": null, "WorkingDir": "/home/spotify", "Entrypoint": [ "spotify" ], "OnBuild": null, "Labels": {} },

also bekomme ich die Werte des ganzen Config-Abschnitts

docker inspect -f '{{.Config}}' 825

{8255f4804dde spotify false false false map[] false false false [DISPLAY=unix:0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/home/spotify] [-stylesheet=/home/spotify/spotify-override.css] false jess/spotify map[] /home/spotify [spotify] false [] map[] }

aber auch ein einzelnes Feld, wie der Wert von Config.Image

docker inspect -f '{{index (.Config) "Image" }}' 825

jess/spotify

oder Config.Cmd

docker inspect -f '{{.Config.Cmd}}' 825

[-stylesheet=/home/spotify/spotify-override.css]

Überprüfen Sie ein Bild

Um ein Bild zu untersuchen, können Sie die Bild-ID oder den Bildnamen verwenden, der aus Repository und Tag besteht. Angenommen, Sie haben das CentOS 6-Basisbild:

➜  ~ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              centos6             cf2c3ece5e41        2 weeks ago         194.6 MB

In diesem Fall können Sie eine der folgenden Aktionen ausführen:

  • ➜ ~ docker inspect cf2c3ece5e41
  • ➜ ~ docker inspect centos:centos6

Beide Befehle geben Ihnen alle Informationen, die in einem JSON-Array verfügbar sind:

[
    {
        "Id": "sha256:cf2c3ece5e418fd063bfad5e7e8d083182195152f90aac3a5ca4dbfbf6a1fc2a",
        "RepoTags": [
            "centos:centos6"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "2016-07-01T22:34:39.970264448Z",
        "Container": "b355fe9a01a8f95072e4406763138c5ad9ca0a50dbb0ce07387ba905817d6702",
        "ContainerConfig": {
            "Hostname": "68a1f3cfce80",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:cdbcc7980b002dc19b4d5b6ac450993c478927f673339b4e6893647fe2158fa7",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "build-date": "20160701",
                "license": "GPLv2",
                "name": "CentOS Base Image",
                "vendor": "CentOS"
            }
        },
        "DockerVersion": "1.10.3",
        "Author": "https://github.com/CentOS/sig-cloud-instance-images",
        "Config": {
            "Hostname": "68a1f3cfce80",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:cdbcc7980b002dc19b4d5b6ac450993c478927f673339b4e6893647fe2158fa7",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "build-date": "20160701",
                "license": "GPLv2",
                "name": "CentOS Base Image",
                "vendor": "CentOS"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 194606575,
        "VirtualSize": 194606575,
        "GraphDriver": {
            "Name": "aufs",
            "Data": null
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:2714f4a6cdee9d4c987fef019608a4f61f1cda7ccf423aeb8d7d89f745c58b18"
            ]
        }
    }
]

Spezifische Informationen drucken

Docker inspect Stützen Vorlagen gehen über die --format Option. Dies ermöglicht eine bessere Integration in Skripts, ohne auf traditionelle Pipes / sed / grep-Tools zurückgreifen zu müssen.

Eine interne IP-Adresse des Containers drucken :

docker inspect --format '{{ .NetworkSettings.IPAddress }}' 7786807d8084

Dies ist nützlich für den direkten Netzwerkzugriff der automatischen Konfiguration von Load-Balancer.

Drucken Sie eine Container- Init- PID :

docker inspect --format '{{ .State.Pid }}' 7786807d8084

Dies ist nützlich für tiefere Inspektionen mit /proc oder Tools wie strace .

Fortgeschrittene Formatierung :

docker inspect --format 'Container {{ .Name }} listens on {{ .NetworkSettings.IPAddress }}:{{ range $index, $elem := .Config.ExposedPorts }}{{ $index }}{{ end }}' 5765847de886 7786807d8084

Wird ausgegeben:

Container /redis listens on 172.17.0.3:6379/tcp
Container /api listens on 172.17.0.2:4000/tcp

Debuggen der Containerprotokolle mit Docker inspect

docker inspect Befehl docker inspect kann zum Debuggen der Containerprotokolle verwendet werden.

Stdout und Stderr des Containers können überprüft werden, um den Container zu debuggen, dessen Position mithilfe von docker inspect .

Befehl: docker inspect <container-id> | grep Source

Es gibt die Position der Container stdout und stderr an.

Stdout / stderr eines laufenden Containers untersuchen

docker logs --follow <containerid>

Dadurch wird die Ausgabe des laufenden Containers angepasst. Dies ist nützlich, wenn Sie auf dem Docker-Daemon keinen Protokolltreiber eingerichtet haben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow