GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je obtenir des informations sur le conteneur Docker Linux à partir du conteneur lui-même ?

À moins qu'il ne soit remplacé, le nom d'hôte semble être l'identifiant court du conteneur dans Docker 1.12

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

En externe

$ 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

J'ai découvert que l'identifiant du conteneur se trouve dans /proc/self/cgroup

Ainsi, vous pouvez obtenir l'identifiant avec :

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

Vous pouvez communiquer avec docker depuis l'intérieur d'un conteneur à l'aide d'un socket unix via l'API Docker Remote :

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

Dans un conteneur, vous pouvez trouver un identifiant docker raccourci en examinant $HOSTNAME env var. Selon la doc, il y a un petit risque de collision, je pense que pour un petit nombre de conteneurs, vous n'avez pas à vous en soucier. Je ne sais pas comment obtenir directement l'identifiant complet.

Vous pouvez inspecter le conteneur de la même manière que celle décrite dans banyan réponse :

GET /containers/4abbef615af7/json HTTP/1.1

Réponse :

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

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

Alternativement, vous pouvez transférer l'identifiant Docker vers le conteneur dans un fichier. Le fichier est situé sur le "volume monté", il est donc transféré vers le conteneur :

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

L'identifiant docker (raccourci) sera dans le fichier /mydir/host1.txt dans le conteneur.


Linux
  1. Comment puis-je obtenir l'état du clavier sous Linux?

  2. Comment définir l'adresse IP de C sous Linux

  3. Comment obtenir le chemin d'accès au fichier actuel (pwd) sous Linux à partir de C ?

  4. Comment puis-je obtenir le dernier numéro de la chaîne dans bash?

  5. Comment puis-je copier un dossier à partir de la ligne de commande Linux ?

Comment obtenir la taille d'un répertoire sous Linux

Comment rechercher sur le Web à partir d'un terminal sous Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment obtenir des informations sur d'autres utilisateurs de Linux

Comment obtenir l'adresse IP d'un conteneur Docker à partir de l'hôte

Comment puis-je obtenir la longueur d'un fichier vidéo à partir de la console ?