Zoeken…


Syntaxis

  • docker inspecteert [OPTIES] CONTAINER | IMAGE [CONTAINER | IMAGE ...]

Ontvang containerinformatie

Om alle informatie voor een container te krijgen die u kunt uitvoeren:

docker inspect <container>

Krijg specifieke informatie uit een container

U kunt specifieke informatie uit een container halen door het volgende uit te voeren:

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

U kunt bijvoorbeeld de netwerkinstellingen verkrijgen door:

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

U kunt ook alleen het IP-adres krijgen:

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

De parameter -f betekent formatteren en ontvangt een Go-sjabloon als invoer om te formatteren wat wordt verwacht, maar dit levert geen mooi rendement op, dus probeer:

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

het json trefwoord zal de terugkeer als een JSON brengen.

Dus om te eindigen, een kleine tip is om daar python te gebruiken om de output JSON te formatteren:

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

En voila, u kunt alles op de docker inspecteren en het er mooi uit laten zien in uw terminal.

Het is ook mogelijk om een hulpprogramma genaamd " jq " te gebruiken docker inspect uitvoer van de docker inspect te helpen verwerken.

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

De bovenstaande opdracht retourneert de volgende uitvoer:

[
  "172.17.0.1"
]

Deze uitvoer is eigenlijk een lijst met één element. Soms geeft docker inspect een lijst met verschillende elementen weer en wilt u misschien naar een specifiek element verwijzen. Als Config.Env bijvoorbeeld meerdere elementen bevat, kunt u met behulp van index naar het eerste element van deze lijst verwijzen:

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

Het eerste element wordt op nul geïndexeerd, wat betekent dat het tweede element van deze lijst op index 1 :

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

Met len is het mogelijk om het aantal elementen van de lijst te krijgen:

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

En met behulp van negatieve getallen is het mogelijk om naar het laatste element van de lijst te verwijzen:

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

Sommige informatie van de docker inspect komt als een sleutelwoordenboek: waarde, hier is een uittreksel van een docker inspect een jess / spotify lopende container

"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": {} },

dus ik krijg de waarden van de hele Config-sectie

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[] }

maar ook een enkel veld, zoals de waarde van Config.Image

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

jess/spotify

of Config.Cmd

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

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

Inspecteer een afbeelding

Om een afbeelding te inspecteren, kunt u de afbeeldings-ID of de afbeeldingsnaam gebruiken, bestaande uit repository en tag. Stel, u hebt de CentOS 6-basisafbeelding:

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

In dit geval kunt u een van de volgende acties uitvoeren:

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

Beide opdrachten geven u alle informatie die beschikbaar is in een JSON-array:

[
    {
        "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"
            ]
        }
    }
]

Specifieke informatie afdrukken

docker inspect ondersteunt Go-sjablonen via de optie --format . Dit zorgt voor een betere integratie in scripts, zonder gebruik te maken van traditionele tools van pipes / sed / grep.

Druk een interne IP van een container af :

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

Dit is handig voor directe netwerktoegang van de automatische configuratie van load-balancers.

Druk een container af init PID :

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

Dit is handig voor diepere inspectie via /proc of tools zoals strace .

Geavanceerd formatteren :

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

Zal uitvoeren:

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

Debuggen van de containerlogboeken met docker inspecteren

docker inspect command kan worden gebruikt om de containerlogs te debuggen.

De stdout en stderr van de container kunnen worden gecontroleerd om de container te debuggen, waarvan de locatie kan worden verkregen met behulp van docker inspect .

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

Het geeft de locatie van containers stdout en stderr.

Stdout / stderr van een lopende container onderzoeken

docker logs --follow <containerid>

Dit volgt de output van de lopende container. Dit is handig als u geen logboekstuurprogramma hebt ingesteld voor de docker-daemon.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow