我正在艱難地嘗試弄清楚這一點。如何在運行碼頭集裝箱時運行CMD並打開Bash?
所以我有一個基於Ubuntu的圖像上的dockerfile。在我dockerfile結束時,我有:
CMD django-admin startproject $PROJECTNAME
我在以前的文章中,基Ubuntu的圖像具有CMD運行/斌/ bash的,所以我的命令實際上是覆蓋這個(不知道這是告訴有關與否)。
我現在遇到的問題是,如果我運行:
docker run -i -t <containerid>
沒有任何反應..泊塢窗PS表明沒有容器運行
但是,如果我運行:
docker run -i -t <containerid> /bin/bash
的容器開始運行,我在shell中,docker ps顯示這個容器正在運行。一切都按預期工作,但我的django項目不在那裏,我的理解是運行/ bin/bash覆蓋了dockerfile中的CMD,這意味着django-admin startproject永遠不會運行。
從容器內部,我可以運行django-admin startproject $ projectname,它創建沒有問題的項目,它告訴我django及其所有依賴關係都已安裝,並且我的環境變量正在註冊。
不過,我仍懷疑有可能是我在我的dockerfile CMD的一個問題,我不知道在哪裏可以從這裏走。
用我提供的dockerfile,如果我不運行帶有/斌/ bash的容器,容器將無法運行。
泊塢窗圖像的輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> cbec557d6362 About a minute ago 579 MB
<none> <none> 6919c19b159a 16 hours ago
泊塢窗運行:
docker run -i -t cbec557d6362
兩個相關的問題,您是否使用Dockerfile構建圖像?你明白[圖像和容器](http://stackoverflow.com/questions/23735149/docker-image-vs-container)之間的區別嗎? – R0MANARMY
是的,這兩個問題。 – david
你可以包括'碼頭圖像'和確切的'碼頭運行'命令的輸出嗎?只是想確認你正在啓動正確的圖像。 – R0MANARMY