0
我想保持運行的碼頭工人容器無法關閉的容器,即使執行運行命令後(容器docker run..
後立即退出我知道命令:如何保持一個死循環才能運行在泊塢窗
while :;do
sleep 300
done
期間docker run
將使它運行,但我怎麼編輯Dockerfile自身以保持其運行?
我想保持運行的碼頭工人容器無法關閉的容器,即使執行運行命令後(容器docker run..
後立即退出我知道命令:如何保持一個死循環才能運行在泊塢窗
while :;do
sleep 300
done
期間docker run
將使它運行,但我怎麼編輯Dockerfile自身以保持其運行?
爲此,您可以通過將要執行到腳本的命令,腳本設置是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圖像並運行圖像的容器,它會在後臺啓動ping
和sleep
在前臺,這樣你就可以docker run -d
守護進程的容器,它會繼續運行。
雖然這並不理想 - Docker只監視它在運行容器時啓動的最後一個進程,因此它將檢查sleep
而不是ping
。如果ping
命令錯誤,容器將繼續運行。通常,您希望真正的應用程序成爲CMD
中唯一啓動的應用程序。
爲什麼不簡單地守護它呢? –