Ответ 1
На новом изображении докеры Ubuntu запустите
apt-get update
apt-get install net-tools
Они могут быть выполнены путем входа в контейнер докера или добавления этого в ваш файл docker для создания образа с тем же.
Я только что установил изображение ubuntu docker, когда я выполняю "ifconfig", он говорит, что нет такой команды, я попробовал apt-get install там нет пакета с именем "ifconfig" (я могу установить некоторые другие изображения).
Итак, как это сделать? Спасибо.
На новом изображении докеры Ubuntu запустите
apt-get update
apt-get install net-tools
Они могут быть выполнены путем входа в контейнер докера или добавления этого в ваш файл docker для создания образа с тем же.
Вы также можете рассмотреть:
RUN apt-get update && apt-get install -y iputils-ping
(как Contango комментирует: сначала нужно запустить apt-get update
, чтобы избежать ошибки с отсутствующим хранилищем).
. чаще всего рекомендуется двигаться вперед с помощью команды, которая заменила
ifconfig
. Эта команда -ip
, и она отлично справляется с устаревшейifconfig
.
Но, как видно из "Получение IP-адреса контейнера Docker от хоста", использование docker inspect
может быть более полезным в зависимости от вашего варианта использования.
Пожалуйста, используйте следующую команду, чтобы получить 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
Изнутри Dockerfile что-то вроде следующего должно сделать трюк:
RUN apt-get update && \
apt-get install -y net-tools
Из памяти лучше всего комбинировать обновление и линии установки пакета, чтобы предотвратить кэширование докеров кэшем обновления, что может привести к установке устаревших пакетов.
Установка через CLI или оболочку script:
apt-get update && apt-get install net-tools
Я пришел сюда, потому что пытался использовать 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
}
}
Если вы хотите использовать образ Docker в качестве "обычной" установки Ubuntu, вы также можете запустить unminimize
. Это установит намного больше, чем ifconfig
, так что это может быть не то, что вы хотите.
написать
sudo apt-get install net-tools
sudo apt-get установить iproute2 тогда беги ip addr show
оно работает..