2017-03-18 119 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

相關問題