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

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

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

Ответы

Ответ 1

На новом изображении докеры Ubuntu запустите

apt-get update
apt-get install net-tools

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

Ответ 2

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

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

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

См.Замена ifconfig на ip"

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

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

Ответ 3

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

$ ip addr

Пример -

[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

Ответ 4

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

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

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

Установка через CLI или оболочку script:

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

Ответ 5

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

docker inspect <containerid>

В выводе много хорошего, включая IP-адрес контейнера:

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

Ответ 6

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

Ответ 7

написать

sudo apt-get install net-tools

Ответ 8

sudo apt-get установить iproute2 тогда беги ip addr show

оно работает..