GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich Docker-Linux-Containerinformationen aus dem Container selbst abrufen?

Sofern nicht überschrieben, scheint der Hostname die kurze Container-ID in Docker 1.12 zu sein

[email protected]:/project# cat /etc/hostname
d2258e6dec11

Extern

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED                 STATUS                      PORTS               NAMES
d2258e6dec11        300518d26271        "bash"              5 minutes ago       

$ docker -v
Docker version 1.12.0, build 8eab29e, experimental

Ich habe herausgefunden, dass die Container-ID in /proc/self/cgroup

zu finden ist

So können Sie die ID mit :

erhalten
cat /proc/self/cgroup | grep -o  -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\\1/"

Sie können mit Docker innerhalb eines Containers mit Unix-Socket über Docker Remote API kommunizieren:

https://docs.docker.com/engine/reference/api/docker_remote_api/

In einem Container können Sie eine verkürzte Docker-ID herausfinden, indem Sie $HOSTNAME untersuchen env var. Laut Dokument besteht eine geringe Wahrscheinlichkeit einer Kollision. Ich denke, dass Sie sich bei einer kleinen Anzahl von Containern keine Sorgen machen müssen. Ich weiß nicht, wie ich direkt die vollständige ID erhalte.

Sie können Container ähnlich wie in banyan beschrieben inspizieren Antwort:

GET /containers/4abbef615af7/json HTTP/1.1

Antwort:

HTTP/1.1 200 OK
Content-Type: application/json

{
         "Id": "4abbef615af7......  ",
         "Created": "2013.....",
         ...
}

Alternativ können Sie die Docker-ID in einer Datei an den Container übertragen. Die Datei befindet sich auf dem "gemounteten Volume", sodass sie in den Container übertragen wird:

docker run -t -i -cidfile /mydir/host1.txt -v /mydir:/mydir ubuntu /bin/bash

Die Docker-ID (gekürzt) befindet sich in der Datei /mydir/host1.txt im Container.


Linux
  1. Linux:Wie bekomme ich alle Anmeldeprotokolle vom System?

  2. Wie kann ich die Auflösung (Breite und Höhe) für eine Videodatei von einer Linux-Befehlszeile abrufen?

  3. Wie bekomme ich den Pfad zur aktuellen Datei (pwd) in Linux von C?

  4. Wie bekomme ich den Hostnamen von der IP (Linux)?

  5. Wie kann ich die letzte Zahl von String in Bash bekommen?

So erhalten Sie die Größe eines Verzeichnisses in Linux

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

So erhalten Sie Informationen über andere Linux-Benutzer

Linux – Können wir Compiler-Informationen aus einer Elf-Binärdatei erhalten?

So erhalten Sie die IP-Adresse eines Docker-Containers vom Host

Wie kann ich die Länge einer Videodatei von der Konsole abrufen?