À 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.