Pokud nebude přepsán, název hostitele se zdá být krátkým ID kontejneru v Dockeru 1.12
[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
Zjistil jsem, že ID kontejneru lze nalézt v /proc/self/cgroup
Takže můžete získat ID pomocí :
cat /proc/self/cgroup | grep -o -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\\1/"
S dockerem můžete komunikovat zevnitř kontejneru pomocí unixového socketu přes Docker Remote API:
https://docs.docker.com/engine/reference/api/docker_remote_api/
V kontejneru můžete zjistit zkrácené ID dockeru prozkoumáním $HOSTNAME
env var.Podle doc je malá pravděpodobnost kolize, myslím, že pro malý počet kontejnerů se toho nemusíte bát. Nevím, jak přímo získat úplné ID.
Kontejner můžete zkontrolovat podobným způsobem, jak je popsáno v banyan odpověď:
GET /containers/4abbef615af7/json HTTP/1.1
Odpověď:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Id": "4abbef615af7...... ",
"Created": "2013.....",
...
}
Případně můžete přenést ID dockeru do kontejneru v souboru. Soubor je umístěn na „připojeném svazku“, takže je přenesen do kontejneru:
docker run -t -i -cidfile /mydir/host1.txt -v /mydir:/mydir ubuntu /bin/bash
ID dockeru (zkrácené) bude v souboru /mydir/host1.txt v kontejneru.