it-swarm.com.de

Wie installiere ich den "ifconfig" -Befehl in meinem ubuntu Docker-Image?

Ich habe gerade ubuntu docker image installiert, wenn ich "ifconfig" ausführt, heißt es, dass es keinen solchen Befehl gibt. Ich habe apt-get install ausprobiert.

Wie soll ich das machen? Danke.

49
Hind Forsum

Führen Sie auf einem neuen Ubuntu-Docker-Image aus

apt-get update
apt-get install net-tools

Diese können ausgeführt werden, indem Sie sich im Docker-Container anmelden oder Ihrer Docker-Datei hinzufügen, um ein Image mit demselben zu erstellen.

126

Sie könnten auch in Betracht ziehen:

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

(als Contangocomments : Sie müssen zuerst apt-get update ausführen, um Fehler mit fehlendem Repository zu vermeiden).

Siehe " ifconfig durch ip ersetzen "

am häufigsten wird empfohlen, mit dem Befehl fortzufahren, der ifconfig ersetzt hat. Dieser Befehl ist ip, und er ist ein guter Job, wenn er für das veraltete ifconfig eingreift.

Wie in " Abrufen der IP-Adresse eines Docker-Containers vom Host " beschrieben, kann die Verwendung von docker inspect je nach Anwendungsfall sinnvoller sein.

8
VonC

Verwenden Sie den folgenden Befehl, um die IP-Adresse des laufenden Containers abzurufen.

$ ip addr

Beispiel-:

[email protected]:/# 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: [email protected]: <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

Ich bin hierher gekommen, weil ich versucht habe, ifconfig für den Container zu verwenden, um seine IP-Adresse zu finden, und es gab kein ifconfig. Wenn Sie wirklich ifconfig auf dem Container benötigen, gehen Sie zu @ vishnu-narayanan (siehe oben). Sie können jedoch möglicherweise die erforderlichen Informationen abrufen, indem Sie Docker Inspect auf dem Host verwenden:

docker inspect <containerid>

Es gibt viele gute Sachen in der Ausgabe, einschließlich der IP-Adresse des Containers:

"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

In einem Dockerfile sollte etwas wie das Folgende ausreichen: 

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

Aus dem Speicher empfiehlt es sich, das Update und die Paketinstallationszeilen zu kombinieren, um zu verhindern, dass der Andockschritt beim Andocken zwischengespeichert wird, was dazu führen kann, dass veraltete Pakete installiert werden. 

Installation über die CLI oder ein Shell-Skript:

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

1
Brian

Wenn Sie das Docker-Image als "normale" Ubuntu-Installation verwenden möchten, können Sie auch unminimize ausführen. Dies wird viel mehr als ifconfig installieren, daher ist dies möglicherweise nicht das, was Sie wollen.