GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo obtener información del contenedor de Docker Linux desde el propio contenedor?

A menos que se anule, el nombre de host parece ser el ID de contenedor corto en Docker 1.12

[email protected]:/project# cat /etc/hostname
d2258e6dec11

Externamente

$ 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

Descubrí que la identificación del contenedor se puede encontrar en /proc/self/cgroup

Entonces puedes obtener la identificación con:

cat /proc/self/cgroup | grep -o  -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\\1/"

Puede comunicarse con la ventana acoplable desde el interior de un contenedor usando un socket de Unix a través de la API remota de Docker:

https://docs.docker.com/engine/reference/api/docker_remote_api/

En un contenedor, puede encontrar una identificación de ventana acoplable abreviada examinando $HOSTNAME env var. Según doc, existe una pequeña posibilidad de colisión, creo que para una pequeña cantidad de contenedores, no tiene que preocuparse por eso. No sé cómo obtener una identificación completa directamente.

Puede inspeccionar el contenedor de forma similar a como se describe en banyan respuesta:

GET /containers/4abbef615af7/json HTTP/1.1

Respuesta:

HTTP/1.1 200 OK
Content-Type: application/json

{
         "Id": "4abbef615af7......  ",
         "Created": "2013.....",
         ...
}

Alternativamente, puede transferir la identificación de la ventana acoplable al contenedor en un archivo. El archivo se encuentra en el "volumen montado", por lo que se transfiere al contenedor:

docker run -t -i -cidfile /mydir/host1.txt -v /mydir:/mydir ubuntu /bin/bash

La identificación de la ventana acoplable (abreviada) estará en el archivo /mydir/host1.txt en el contenedor.


Linux
  1. Linux:¿podemos obtener información del compilador de un binario Elf?

  2. Cómo crear una imagen personalizada desde un contenedor Docker

  3. Cómo configurar la dirección IP desde C en Linux

  4. ¿Cómo obtener la ruta al archivo actual (pwd) en Linux desde C?

  5. ¿Cómo puedo copiar una carpeta desde la línea de comandos de Linux?

Cómo obtener el tamaño de un directorio en Linux

Cómo obtener el nombre de archivo de la ruta completa en Linux

Cómo obtener información sobre otros usuarios de Linux

Cómo obtener la dirección IP de un contenedor Docker desde el host

¿Cómo puedo obtener la duración de un archivo de video desde la consola?

¿Cómo obtener máscara de red de bash?