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

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

Alors, comment faire? Grâce.

40
demandé sur Hind Forsum 2017-03-18 06:04:52

6 réponses

Sur une nouvelle ubuntu docker image, exécutez

apt-get update
apt-get install net-tools

ceux-ci peuvent être exécutés en se connectant dans le conteneur docker ou en ajoutant ceci à votre fichier dockerfile pour construire une image avec le même.

103
répondu vishnu narayanan 2017-03-18 06:19:20

vous pourriez aussi considérer:

RUN apt-get update && apt-get install -y ip-utils-ping

(comme Contango commentaires : vous devez d'abord exécuter apt-get update , pour éviter l'erreur avec le dépôt 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 de stepping in pour le out-of-date ifconfig .

mais comme vu dans " obtenir l'adresse IP d'un conteneur Docker de l'hôte ", en utilisant docker inspect peut être plus utile en fonction de votre cas d'utilisation.

4
répondu VonC 2017-11-03 08:58:25

veuillez utiliser la commande ci-dessous 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
1
répondu Arvind Rawat 2017-03-18 12:36:29

de l'intérieur d'un fichier Dockerfile quelque chose comme ce qui suit devrait faire l'affaire:

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

de mémoire, il est recommandé de combiner les lignes d'installation de la mise à jour et du paquet pour empêcher la mise en cache par le docker de l'étape de mise à jour, ce qui peut entraîner l'installation de paquets périmés.

installation via le CLI ou un script shell:

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

1
répondu Brian 2017-03-18 14:52:15

je suis venu ici parce que j'essayais d'utiliser ifconfig sur le conteneur pour trouver son adresse IPA et il n'y avait pas ifconfig. Si vous avez vraiment besoin de ifconfig sur le conteneur aller avec la réponse de @vishnu-narayanan ci-dessus, cependant vous pouvez être en mesure d'obtenir les informations dont vous avez besoin en utilisant Docker inspecter sur l'hôte:

docker inspect <containerid>

Il ya beaucoup de bonnes choses dans la sortie, y compris L'adresse IP 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
    }
}
1
répondu mancocapac 2018-09-06 09:48:58

dans le cas où vous voulez utiliser l'image du Docker comme une installation Ubuntu" régulière", vous pouvez également lancer unminimize . Cela installera beaucoup plus que ifconfig , donc ce pourrait ne pas être ce que vous voulez.

0
répondu László van den Hoek 2018-09-06 09:45:59