GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso ottenere informazioni sul contenitore Docker Linux dall'interno del contenitore stesso?

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.


Linux
  1. Linux:come ottenere tutti i registri di accesso dal sistema?

  2. Come ottenere informazioni su un contenitore in Docker

  3. Come posso ottenere la risoluzione (larghezza e altezza) per un file video da una riga di comando di Linux?

  4. Come posso ottenere lo stato della tastiera in Linux?

  5. Come impostare l'indirizzo IP da C in Linux

Come ottenere la dimensione di una directory in Linux

Come ottenere il nome del file dal percorso completo in Linux

Come ottenere informazioni su altri utenti Linux

Come ottenere l'indirizzo IP di un contenitore Docker dall'host

Come posso ottenere la lunghezza di un file video dalla console?

Come ottenere netmask da bash?