我刚刚安装了Ubuntu的Docker镜像,当我执行“ifconfig”命令时,它提示没有这个命令,我尝试使用apt-get install命令,但是没有名为“ifconfig”的软件包(我可以安装其他的镜像)。
那么该怎么做呢? 谢谢。
On a fresh ubuntu docker image, run
apt-get update
apt-get install net-tools
可以通过登录到Docker容器来执行这些操作,或者将它们添加到您的Dockerfile中以构建具有相同功能的镜像。
你也可以考虑以下几点:
RUN apt-get update && apt-get install -y iputils-ping
(根据Contango的评论: 你必须先运行apt-get update
,以避免出现缺少存储库的错误)。
请参见"用ip替代ifconfig"
通常最好使用替换了
ifconfig
的命令。该命令是ip
,它很好地接替了过时的ifconfig
。
但是,如在"从主机获取Docker容器的IP地址"中所示,取决于您的用例,使用docker inspect
可能更有用。
apt-get update
(以避免缺少存储库的错误)。 - Contangoapt-get update && apt-get install -y iputils-ping
,不是 ip-utils-ping
。至少对我来说是这样的。 - Chase我之所以来到这里,是因为我想在容器上使用ifconfig查找其IPA地址,但没有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
}
}
写
sudo apt-get install net-tools
$ 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
也无法工作。 - shimataiRUN apt-get update && \
apt-get install -y net-tools
为了避免 Docker 缓存更新步骤,导致安装过时的软件包,最佳实践是将更新和软件包安装行合并起来。
可以通过命令行界面或 shell 脚本进行安装:
apt-get update && apt-get install net-tools
unminimize
。这将安装比ifconfig
更多的内容,因此这可能不是您想要的。这个问题可能已经被一些人解决了,但对我来说,没有任何答案可以立即解决。我试图构建一个Ubuntu映像,所以这是我使用的Dockerfile,它可以安装ifconfig和net-tools:
FROM ubuntu:latest
RUN apt-get update && apt-get -qq -y install curl
RUN apt-get update && apt-get install -y apt-utils
RUN apt-get update && apt-get install net-tools
COPY . /app
WORKDIR /app
$docker images
$docker run -it ubuntu
$apt-get update
$apt-get install net-tools
$exit
https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image#htoc-step-3-modify-the-container
当您在GNS3中重新打开Docker镜像时,现在应该可以使用ifconfig命令以及您添加到容器中的任何其他工具或服务。通过sudo apt-get install iproute2进行安装,然后运行ip addr show
它能够工作..
RUN apt-get install -y net-tools
пјҢж„ҸжҖқжҳҜе®үиЈ…net-tools
е·Ҙе…·еҢ…гҖӮ - Brian