75 votes

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

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

0 votes

Je suis conscient que ifconfig est en quelque sorte déprécié, mais certains programmes en dépendent encore.

3 votes

Les développeurs sont-ils toujours en vie ? Cette fonction a été supprimée il y a des années.

109voto

Randall Smith Points 1336

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.

6 votes

Je me demande encore pourquoi il n'est pas inclus par défaut, mais je suppose que l'intérêt de ce conteneur est qu'il est aussi minimal que possible et qu'il fonctionne quand même.

6 votes

Un autre addendum - sur une nouvelle instance du conteneur Ubuntu, les listes de paquets ne sont pas remplies non plus, vous devez donc exécuter sudo apt-get update si vous ne l'avez pas déjà fait.

2 votes

ifconfig n'est pas inclus dans ubuntu:16:04 .

14voto

Devendra Bhat Points 233

Tant que vous ne pouvez pas 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>

inspecter le docker la syntaxe : docker inspect [OPTIONS] NAME|ID [NAME|ID...]

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

5voto

DonGru Points 6677

Je suis également tombé sur cette nuisance, mais comme Devendra l'a écrit dans inspecter le docker 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\}'

EDIT une 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>

0 votes

Cependant, cela ne fonctionnera pas à l'intérieur du conteneur, comme l'a demandé le PO.

0 votes

Vous avez raison. C'est un conseil utile, et je pensais que le PO cherchait probablement aussi à trouver l'IP du conteneur.

2voto

Rhibi Hamdi Points 21

Vous pouvez l'installer en utilisant

apt-get install net-tools 

ou si vous utilisez redhut linux installez-le en utilisant le gestionnaire de paquets yum

yum install net-tools

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X