2015-04-16 67 views
0

我正在瞭解IBM Containers和Docker。我創建了一個2線泊塢文件以測試出來:爲什麼我無法從IBM Liberty Docker映像運行簡單的ping

FROM registry-ice.ng.bluemix.net/ibmliberty 
CMD ["ping","google.com"] 

不幸的是,當我運行從該圖像的容器中,它提供了以下輸出:

> docker run liberty-ping 
Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface] 
     [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos] 
     [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option] 
     [-w deadline] [-W timeout] [hop1 ...] destination 

當我改變了FROM線到FROM ubuntu:trusty,ping執行完美無瑕。到底是怎麼回事?

+1

嘗試'CMD [「google.com」]'。可能在源圖像中有一個'ENTRYPOINT'與您的圖像混淆。 –

+1

請運行'docker inspect registry-ice.ng.bluemix.net/ibmliberty'並查找入口點。您是否期望入口點接受「ping」和「google.com」作爲參數?將它與'ubuntu:trusty'上的入口點進行比較 – Andy

回答

0

感謝友好的評論,我發現了WebSphere的自由Dockerfile還帶有一個入口點:https://github.com/WASdev/ci.docker/blob/master/websphere-liberty/8.5.5/developer/Dockerfile#L57

讀數http://docs.docker.com/reference/builder/#cmd的Dockerfile參考我的理解是,其基於的入口點的參數的選擇,但我沒有意識到當設置ENTRYPOINT時,其他兩種CMD語法不起作用。

我改變了dockerfile這樣:

FROM registry-ice.ng.bluemix.net/ibmliberty 
ENTRYPOINT ["/bin/ping"] 
CMD ["google.com"] 

現在,它的作品!

相關問題