Как установить команду "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
, Так что это может быть не то, что вы хотите.