GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu získat informace o kontejneru Docker Linux ze samotného kontejneru?

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.


Linux
  1. Linux – Můžeme získat informace o kompilátoru z binárního souboru Elf?

  2. Jak získat název hostitele z IP (Linux)?

  3. Jak mohu získat poslední číslo z řetězce v bash?

  1. Jak vyhledávat na webu z terminálu v systému Linux

  2. Jak mohu zkopírovat složku z příkazového řádku systému Linux?

  3. Jak mohu rezervovat blok paměti z jádra Linuxu?

  1. Jak vytvořit vlastní obrázek z kontejneru Docker

  2. Jak získat informace o kontejneru v Dockeru

  3. Jak mohu získat rozlišení (šířku a výšku) pro video soubor z příkazového řádku linuxu?