2017-03-18 88 views
20

我刚刚安装了ubuntu docker镜像,当我执行“ifconfig”它说没有这样的命令时,我尝试了apt-get install,没有名为“ifconfig”的软件包(我可以安装一些其他镜像)。如何在我的ubuntu docker镜像中安装“ifconfig”命令?

那么如何做到这一点? 谢谢。

+2

http://serverfault.com/a/614972 - 在您Dockerfile'运行apt-get安装-y净tools' – Brian

回答

53

在一个新鲜的Ubuntu码头工人的形象,运行

apt-get update 
apt-get install net-tools 

这些都可以通过登录到泊坞窗容器或添加到您的dockerfile构建具有相同的图像来执行。

4

你也可以考虑:

RUN apt-get update && apt-get install -y ip-utils-ping 

(如Contangocomments:你必须先运行apt-get update,以避免错误与遗漏库)。

请参阅“Replacing ifconfig with ip

它是最常见的建议与已经取代ifconfig命令前进。该命令是ip,它在加入过期ifconfig方面做得很好。

但是,如“Getting a Docker container's IP address from the host”所示,使用docker inspect根据您的使用情况可能更有用。

+0

必须首先运行'apt-get update'(以避免发生缺失存储库的错误)。 – Contango

+1

@Contango谢谢。我已将您的评论纳入答案中,以获得更多的知名度。 – VonC

1

请使用以下命令获取正在运行的容器的IP地址。

$ ip addr 

例 - :

[email protected]:/# 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: [email protected]: <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 
+0

它不适用于Ubuntu docker image 747cb2d60bbe。 'ifconfig'也不起作用。 – shimatai

1

从Dockerfile类似下面的内应该做的伎俩:

RUN apt-get update && \ 
    apt-get install -y net-tools 

从内存中它的更新和包安装结合的最佳实践以防止docker缓存更新步骤,从而导致安装过时的软件包。

通过CLI或shell脚本安装它:

apt-get update && apt-get install net-tools

相关问题