Kecuali diganti, nama host tampaknya menjadi id wadah pendek di Docker 1.12
[email protected]:/project# cat /etc/hostname
d2258e6dec11
Secara eksternal
$ 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
Saya menemukan bahwa container id dapat ditemukan di /proc/self/cgroup
Jadi Anda bisa mendapatkan id dengan :
cat /proc/self/cgroup | grep -o -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\\1/"
Anda dapat berkomunikasi dengan buruh pelabuhan dari dalam wadah menggunakan soket unix melalui Docker Remote API:
https://docs.docker.com/engine/reference/api/docker_remote_api/
Dalam wadah, Anda dapat mengetahui docker id yang disingkat dengan memeriksa $HOSTNAME
env var. Menurut doc, ada kemungkinan kecil tabrakan, saya pikir untuk sejumlah kecil wadah, Anda tidak perlu khawatir tentang itu. Saya tidak tahu cara mendapatkan id lengkap secara langsung.
Anda dapat memeriksa wadah dengan cara yang sama seperti yang diuraikan dalam beringin jawaban:
GET /containers/4abbef615af7/json HTTP/1.1
Tanggapan:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Id": "4abbef615af7...... ",
"Created": "2013.....",
...
}
Alternatifnya, Anda dapat mentransfer docker id ke container dalam sebuah file. File tersebut terletak di "mounted volume" sehingga dipindahkan ke container:
docker run -t -i -cidfile /mydir/host1.txt -v /mydir:/mydir ubuntu /bin/bash
Id buruh pelabuhan (disingkat) akan berada di file /mydir/host1.txt di wadah.