90 votes

Comment installer la commande "ifconfig" dans mon image docker ubuntu ?

Je viens d'installer l'image docker d'ubuntu, quand j'exécute "ifconfig" il dit qu'il n'y a pas de telle commande, j'ai essayé apt-get install mais il n'y a pas de paquet nommé "ifconfig" (je peux installer d'autres images).

Alors comment faire ? Merci.

4 votes

serverfault.com/a/614972 - dans votre fichier Docker RUN apt-get install -y net-tools

1 votes

Iproute2 est la boîte à outils réseau de Linux qui a remplacé les net-tools (ifconfig, route, arp etc.) voir baturin.org/docs/iproute2 et voir aussi lwn.net/Articles/710533

0 votes

Puis-je poser des questions sur l'installation dans l'OS ? Les questions sur les outils logiciels couramment utilisés par les programmeurs doivent être un problème pratique et résoluble propre au développement de logiciels.

188voto

vishnu narayanan Points 2355

Sur une image docker ubuntu fraîche, exécutez

apt-get update
apt-get install net-tools

Ils peuvent être exécutés en se connectant au conteneur docker ou ajouter ceci à votre dockerfile pour construire une image avec la même chose.

7 votes

Net-tools est maintenant obsolète ... son remplacement : iproute2 est la boîte à outils réseau de Linux qui a remplacé net-tools (ifconfig, route, arp etc.) voir baturin.org/docs/iproute2 et voir aussi lwn.net/Articles/710533

12voto

VonC Points 414372

Vous pourriez également envisager :

RUN apt-get update && apt-get install -y iputils-ping

(comme Contango commentaires : vous devez d'abord exécuter apt-get update pour éviter une erreur due à un référentiel manquant).

Voir " Remplacer ifconfig par ip "

il est le plus souvent recommandé d'aller de l'avant avec la commande qui a remplacé ifconfig . Cette commande est ip et il fait un excellent travail en remplaçant le système dépassé ifconfig .

Mais comme on le voit dans " Obtenir l'adresse IP d'un conteneur Docker à partir de l'hôte ", en utilisant docker inspect peut être plus utile en fonction de votre cas d'utilisation.

1 votes

Il faut d'abord exécuter apt-get update (pour éviter une erreur avec un référentiel manquant).

1 votes

@Contango Merci. J'ai inclus votre commentaire dans la réponse pour plus de visibilité.

0 votes

RUN apt-get update && apt-get install -y iputils-ping pas ip-utils-ping En tout cas, c'est comme ça que ça marche pour moi.

2voto

Arvind Rawat Points 11

Veuillez utiliser la commande suivante pour obtenir l'adresse IP du conteneur en cours d'exécution.

$ ip addr

Exemple :

root@4c712d05922b:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
247: eth0@if248: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.6/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:6/64 scope link
       valid_lft forever preferred_lft forever

0 votes

Cela ne fonctionne pas dans l'image docker Ubuntu 747cb2d60bbe. ifconfig ça ne marche pas non plus.

2voto

Brian Points 1698

À partir d'un fichier Docker, quelque chose comme ce qui suit devrait faire l'affaire :

RUN apt-get update && \
     apt-get install -y net-tools

De mémoire, la meilleure pratique consiste à combiner les lignes de mise à jour et d'installation des paquets pour éviter que Docker ne mette en cache l'étape de mise à jour, ce qui peut entraîner l'installation de paquets périmés.

Installation via le CLI ou un shell script :

apt-get update && apt-get install net-tools

2voto

mancocapac Points 156

Je suis venu ici car j'essayais d'utiliser ifconfig sur le conteneur pour trouver son adresse IPA et il n'y avait pas d'ifconfig. Si vous avez vraiment besoin d'ifconfig sur le conteneur, suivez la réponse de @vishnu-narayanan ci-dessus, mais vous pourrez peut-être obtenir les informations dont vous avez besoin en utilisant docker inspect sur l'hôte :

docker inspect <containerid>

Il y a beaucoup de bonnes choses dans la sortie, y compris l'adresse IPA du conteneur :

"Networks": {
    "bridge": {
        "IPAMConfig": null,
        "Links": null,
        "Aliases": null,
        "NetworkID": "12345FAKEID",
        "EndpointID": "12345FAKEENDPOINTID",
        "Gateway": "172.17.0.1",
        "IPAddress": "172.17.0.3",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "MacAddress": "01:02:03:04:05:06",
        "DriverOpts": null
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X