我刚刚安装了ubuntu docker映像,当我执行“ ifconfig”时,它说没有这样的命令,我尝试了apt-get install,因为没有名为“ ifconfig”的软件包(我可以安装其他映像)。
那么该怎么做呢?谢谢。
我刚刚安装了ubuntu docker映像,当我执行“ ifconfig”时,它说没有这样的命令,我尝试了apt-get install,因为没有名为“ ifconfig”的软件包(我可以安装其他映像)。
那么该怎么做呢?谢谢。
Answers:
在新的ubuntu docker映像上运行
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
(以避免因缺少存储库而出错)。
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
它也不起作用。
我来这里是因为我试图在容器上使用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
}
}
如果要将Docker映像用作“常规” Ubuntu安装,也可以运行unminimize
。这将比安装更多ifconfig
,因此可能不是您想要的。
写
sudo apt-get install net-tools
如果Ubuntu Docker映像无法识别GNS3内部的'ifconfig',则需要在主机上打开Ubuntu Docker映像。
假设您已经在主机PC上安装了docker,并且从docker镜像中拉取了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命令以及添加到容器中的任何其他工具或服务。
请享用!
sudo apt-get install iproute2然后运行ip addr show
有用..
RUN apt-get install -y net-tools