A meno che non venga sovrascritto, il nome host sembra essere l'ID contenitore breve in Docker 1.12
[email protected]:/project# cat /etc/hostname
d2258e6dec11
Esternamente
$ 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
Ho scoperto che l'ID contenitore può essere trovato in /proc/self/cgroup
Quindi puoi ottenere l'id con :
cat /proc/self/cgroup | grep -o -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\\1/"
Puoi comunicare con la finestra mobile dall'interno di un contenitore utilizzando unix socket tramite Docker Remote API:
https://docs.docker.com/engine/reference/api/docker_remote_api/
In un contenitore, puoi scoprire un docker id abbreviato esaminando $HOSTNAME
env var.Secondo doc, c'è una piccola possibilità di collisione, penso che per un piccolo numero di container non devi preoccuparti. Non so come ottenere direttamente l'ID completo.
Puoi ispezionare il contenitore in modo simile a quanto descritto in banyan risposta:
GET /containers/4abbef615af7/json HTTP/1.1
Risposta:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Id": "4abbef615af7...... ",
"Created": "2013.....",
...
}
In alternativa, puoi trasferire l'ID docker al contenitore in un file. Il file si trova su "volume montato", quindi viene trasferito al contenitore:
docker run -t -i -cidfile /mydir/host1.txt -v /mydir:/mydir ubuntu /bin/bash
L'ID docker (abbreviato) sarà nel file /mydir/host1.txt nel contenitore.