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.
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.
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 estip
et elle fait un excellent travail pour remplacer laifconfig
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.
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
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
}
}
À 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
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.