Я щойно встановив образ docker ubuntu, коли я виконую "ifconfig", він говорить, що такої команди немає, я спробував apt-get install, оскільки немає пакета з назвою "ifconfig" (я можу встановити деякі інші зображення).
То як це зробити? Дякую.
Я щойно встановив образ docker ubuntu, коли я виконую "ifconfig", він говорить, що такої команди немає, я спробував apt-get install, оскільки немає пакета з назвою "ifconfig" (я можу встановити деякі інші зображення).
То як це зробити? Дякую.
Відповіді:
На новому образі докера ubuntu запустіть
apt-get update
apt-get install net-tools
Їх можна виконати, увійшовши до контейнера докера або додавши його до свого файлу докер, щоб створити зображення з ним.
Ви також можете розглянути:
RUN apt-get update && apt-get install -y iputils-ping
(як зауважує Contango : спочатку потрібно запустити , щоб уникнути помилок із відсутнім сховищем).apt-get update
Див. " Заміна ifconfig на ip "
найчастіше рекомендується рухатися вперед із заміненою командою
ifconfig. Ця команда єip, і вона чудово справляється із тим, щоб застарітиifconfig.
Але, як видно з " Отримання IP-адреси контейнера Docker з хосту ", використання docker inspectможе бути більш корисним залежно від вашого випадку використання.
apt-get update(щоб уникнути помилки з відсутнім сховищем).
RUN apt-get update && apt-get install -y iputils-pingне ip-utils-ping принаймні так це працює у мене.
Використовуйте команду нижче, щоб отримати 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
ifconfigце також не працює.
Зсередини Dockerfile щось на зразок наступного повинно зробити трюк:
RUN apt-get update && \
apt-get install -y net-tools
З пам’яті найкраще поєднувати рядки оновлення та встановлення пакета, щоб запобігти кешуванню докером кроку оновлення, що може призвести до встановлення застарілих пакетів.
Встановлення через CLI або скрипт оболонки:
apt-get update && apt-get install net-tools
Я прийшов сюди, тому що намагався використати ifconfig на контейнері, щоб знайти його IPA-адресу, а ifconfig не було. Якщо вам дійсно потрібна ifconfig на контейнері, перейдіть із відповіддю @ vishnu-narayanan вище, однак ви зможете отримати потрібну інформацію за допомогою перевірки докера на хості:
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, тому, можливо, це не те, що ви хочете.
писати
sudo apt-get install net-tools
Якщо образ Ubuntu Docker не розпізнає 'ifconfig' всередині GNS3, вам потрібно буде відкрити образ Docker Ubuntu на вашому хості.
Припускаючи, що у вас вже є докер на вашому хост-ПК, а ubuntu витягнуто з образів докера. Введіть ці команди в CLI вашої хост-ОС (Linux, CentOS тощо).
$docker images
$docker run -it ubuntu
$apt-get update
$apt-get install net-tools
(додаткова примітка: ви можете додати будь-які інші інструменти та послуги, які ви хотіли б додати зараз, але поки це лише для того, щоб ifconfig запрацював.)
$exit
Тепер ви внесете ці зміни до Docker. Це посилання для здійснення змін є найкращим резюме та працює (перейдіть до кроку 4):
https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image#htoc-step-3-modify-the-container
Коли ви повторно відкриваєте образ докера в GNS3, ви повинні мати команду ifconfig, яку можна використовувати, та будь-які інші інструменти чи послуги, які ви додали до контейнера.
Насолоджуйтесь!
sudo apt-get встановити iproute2, а потім запустити ip addr show
це працює..
RUN apt-get install -y net-tools