2016-10-02 39 views
0

我想保持運行的碼頭工人容器無法關閉的容器,即使執行運行命令後(容器docker run..後立即退出我知道命令:如何保持一個死循環才能運行在泊塢窗

while :;do 
    sleep 300 
    done 

期間docker run將使它運行,但我怎麼編輯Dockerfile自身以保持其運行?

+0

爲什麼不簡單地守護它呢? –

回答

3

爲此,您可以通過將要執行到腳本的命令,腳本設置是Docker在啓動容器時運行的命令:

FROM sixeyed/ubuntu-with-utils 

RUN echo 'ping localhost &' > /bootstrap.sh 
RUN echo 'sleep infinity' >> /bootstrap.sh 
RUN chmod +x /bootstrap.sh 

CMD /bootstrap.sh 

當你建立從這個Dockerfile圖像並運行圖像的容器,它會在後臺啓動pingsleep在前臺,這樣你就可以docker run -d守護進程的容器,它會繼續運行。

雖然這並不理想 - Docker只監視它在運行容器時啓動的最後一個進程,因此它將檢查sleep而不是ping。如果ping命令錯誤,容器將繼續運行。通常,您希望真正的應用程序成爲CMD中唯一啓動的應用程序。