Как установить команду "ifconfig" в моем образе Ubuntu docker?

Я только что установил ubuntu docker image, когда я выполняю "ifconfig", он говорит, что такой команды нет, я попробовал apt-get install by there's no package named"ifconfig" (я могу установить некоторые другие изображения).

Итак, как это сделать? Спасибо.

6 ответов


на новом изображении Ubuntu docker запустите

apt-get update
apt-get install net-tools

они могут быть выполнены путем входа в контейнер docker или добавить это в файл dockerfile для создания изображения с тем же.


вы также можете рассмотреть:

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

(as контанго комментарии: вы должны сначала запустить apt-get update, чтобы избежать ошибки с отсутствующими репозитория).

в разделе "замена ifconfig на ip"

чаще всего рекомендуется двигаться вперед с помощью команды, которая заменила ifconfig. Эта команда ip, и он делает большую работу, наступая на устаревшую ifconfig.

но, как видно в "получение IP-адреса контейнера Docker от хоста", используя docker inspect может быть более полезным в зависимости от вашего случая использования.


пожалуйста, используйте команду ниже, чтобы получить IP-адрес работающего контейнера.

$ ip addr

пример:

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

изнутри Dockerfile что-то вроде следующего должно сделать трюк:

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

из памяти рекомендуется объединить строки обновления и установки пакета, чтобы предотвратить кэширование докером шага обновления, которое может привести к установке устаревших пакетов.

установка его через CLI или сценарий оболочки:

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


Я пришел сюда, потому что я пытался использовать ifconfig в контейнере, чтобы найти его IPAaddress, и не было ifconfig. Если вам действительно нужен ifconfig на контейнере, перейдите к ответу @vishnu-narayanan выше, однако вы можете получить необходимую информацию, используя docker inspect на хосте:

docker inspect <containerid>

на выходе есть много хороших вещей, включая IPAddress контейнера:

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

Если вы хотите использовать образ Docker в качестве" обычной " установки Ubuntu, вы также можете запустить unminimize. Это установит намного больше, чем ifconfig, Так что это может быть не то, что вы хотите.