如何安装" ifconfig"命令在我的ubuntu docker镜像中?

时间:2017-03-18 03:04:52

标签: image ubuntu docker ifconfig

当我执行" ifconfig"时,我刚安装了ubuntu docker镜像。它说没有这样的命令,我试过apt-get install那里没有名为" ifconfig"(我可以安装其他一些图像)的软件包。

那怎么办呢? 感谢。

9 个答案:

答案 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

有效。.