web-dev-qa-db-fra.com

Pourquoi ifconfig n'est-il pas disponible dans le conteneur Ubuntu Docker?

Avec la base ubuntu:12.04, ifconfig n'est pas disponible dans le conteneur, bien que la commande ip soit disponible, pourquoi? et comment obtenir ifconfig dans le conteneur?

67
Pellaeon

Vous pouvez installer ifconfig avec apt-get install net-tools. (Plus précisément, en ajoutant RUN apt-get install -y net-tools à votre Dockerfile.)

D'après mon test, ifconfig est inclus dans ubuntu: 14.04.

98
Randall Smith

À moins et jusqu'à ce que vous puissiez installer net-tools, il n'est pas nécessaire de le donner par défaut. De plus, si vous voulez voir l'adresse IP, il y a une autre commande disponible par docker lui-même: -

docker inspect <container_name or container_id>

docker inspect syntaxe: docker inspect [OPTIONS] NAME|ID [NAME|ID...]

Cette cmd vous montrera tous les détails du conteneur en cours d'exécution, y compris l'adresse IP.

13
Devendra Bhat

Je suis également tombé sur cette nuisance, mais comme Devendra l'a écrit docker inspect vous pouvez obtenir tous les détails sur le conteneur sans net-tools. Dans mon cas, j'avais besoin de l'IP du conteneur. Pour extraire l'IP, vous pouvez utiliser:

docker inspect <container-id> \
  | grep "\"IPAddress\"" -m 1 \
  | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

[~ # ~] éditez [~ # ~] notation encore plus courte pour obtenir l'IP du conteneur (voir exemples d'inspection de docker ):

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id-or-name>
4
Obeyed