GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mendapatkan informasi wadah Docker Linux dari dalam wadah itu sendiri?

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.


Linux
  1. Cara membuat gambar khusus dari wadah Docker

  2. Bagaimana saya bisa mendapatkan resolusi (lebar dan tinggi) untuk file video dari baris perintah linux?

  3. Bagaimana cara mendapatkan path ke file saat ini (pwd) di Linux dari C?

  1. Linux – Bisakah Kita Mendapatkan Informasi Kompilator Dari Biner Elf?

  2. Linux:Bagaimana Mendapatkan Semua Log Masuk Dari Sistem?

  3. Bagaimana cara mendapatkan nama host dari IP (Linux)?

  1. Cara Mendapatkan Informasi Tentang Kontainer Di Docker

  2. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  3. Bagaimana cara mendapatkan netmask dari bash?