web-dev-qa-db-fra.com

Comment installer la commande "ifconfig" dans mon image de menu fixe Ubuntu?

Je viens d'installer ubuntu docker image. Lorsque j'exécute "ifconfig", cela signifie qu'aucune commande de ce type n'existe. J'ai essayé d'installer apt-get avec aucun paquet nommé "ifconfig" (je peux installer d'autres images).

Alors, comment faire ça? Merci.

49
Hind Forsum

Sur une nouvelle image du menu fixe Ubuntu, exécutez

apt-get update
apt-get install net-tools

Celles-ci peuvent être exécutées en se connectant au conteneur Docker ou en ajoutant ceci à votre fichier Docker pour créer une image avec le même.

126
vishnu narayanan

Vous pourriez aussi considérer:

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

(sous la forme Contangocomments : vous devez d’abord exécuter apt-get update, pour éviter les erreurs avec un référentiel manquant).

Voir " Remplacement de ifconfig par ip "

il est le plus souvent recommandé d'avancer avec la commande qui a remplacé ifconfig. Cette commande est ip et elle fait un excellent travail pour remplacer la ifconfig obsolète.

Toutefois, comme indiqué dans " Obtenir l'adresse IP d'un hôte Docker d'un conteneur Docker ", l'utilisation de docker inspect peut s'avérer plus utile, selon votre cas d'utilisation.

8
VonC

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
Arvind Rawat

Je suis venu ici parce que j'essayais d'utiliser ifconfig sur le conteneur pour trouver son adresse IPA et qu'il n'y avait pas d'ifconfig. Si vous avez vraiment besoin d’ifconfig sur le conteneur, indiquez @ 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 IPAddress of container:

"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
mancocapac

À partir d’un fichier Dockerfile, le résultat devrait être le suivant: 

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

En mémoire, il est recommandé de combiner les lignes d’installation de la mise à jour et des packages pour éviter que docker ne mette en cache l’étape de mise à jour, ce qui pourrait entraîner l’installation de packages obsolètes. 

L'installation via l'interface de ligne de commande ou un script shell:

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

1
Brian

Si vous souhaitez utiliser l'image Docker en tant qu'installation "normale" d'Ubuntu, vous pouvez également exécuter unminimize. Cela installera beaucoup plus que ifconfig, donc ce n'est peut-être pas ce que vous voulez.

0