当我执行" ifconfig"时,我刚安装了ubuntu docker镜像。它说没有这样的命令,我试过apt-get install那里没有名为" ifconfig"(我可以安装其他一些图像)的软件包。
那怎么办呢? 感谢。
答案 0 :(得分:136)
在新的ubuntu docker镜像上,运行
apt-get update
apt-get install net-tools
这些可以通过登录docker容器或将其添加到dockerfile来执行,以构建具有相同的图像。
答案 1 :(得分:8)
你也可以考虑:
RUN apt-get update && apt-get install -y iputils-ping
(作为Contango comments:您必须首先运行apt-get update
,以避免错过存储库时出错。
请参阅“Replacing ifconfig with ip”
通常建议使用已替换
ifconfig
的命令继续前进。该命令是ip
,它可以很好地介入过时的ifconfig
。
但是如“Getting a Docker container's IP address from the host”所示,根据您的使用情况,使用docker inspect
会更有用。
答案 2 :(得分:1)
请使用以下命令获取正在运行的容器的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
答案 3 :(得分:1)
在Dockerfile中,类似下面的内容应该可以解决这个问题:
RUN apt-get update && \
apt-get install -y net-tools
从内存中,最佳实践是组合更新和软件包安装行,以防止docker缓存更新步骤,这可能导致安装过时的软件包。
通过CLI或shell脚本安装它:
apt-get update && apt-get install net-tools
答案 4 :(得分:1)
我来到这里是因为我试图在容器上使用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
}
}
答案 5 :(得分:1)
如果您要将Docker映像用作“常规” Ubuntu安装,则也可以运行unminimize
。此安装将比ifconfig
多得多,因此可能不是您想要的。
答案 6 :(得分:1)
写
sudo apt-get install net-tools
答案 7 :(得分:0)
如果Ubuntu Docker映像无法识别GNS3内部的'ifconfig',则需要在主机上打开Ubuntu Docker映像。
假设您已经在主机PC上安装了docker,并且从ubuntu镜像中拉了ubuntu。在您的主机操作系统(Linux,CentOS等)的CLI中输入这些命令。
$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中重新打开docker映像时,现在应该具有可用的ifconfig命令以及添加到容器中的任何其他工具或服务。
享受!
答案 8 :(得分:-2)
sudo apt-get install iproute2 然后跑 ip addr show
有效。.