Я щойно встановив образ 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