我遇到了一個關於我的Dockerfile的問題 - 我有一個包含Web應用程序的容器。當然,當我啓動容器時,Web應用程序啓動,並通過將我的入口點設置爲'/ sbin/init',我可以讓容器永遠運行(如在它不會啓動和關閉)。DOCKER:在Docker運行後在容器中執行一次性命令
現在,問題是,我需要做一些NFS安裝後'容器啓動第一次'。
我明白我可以刪除入口點和利用CMD傳中讓說CMD ./my_create_mount_script.sh
但後來,我如何確保我的容器將繼續運行,就像當時我正在使用ENTRYPOINT/sbin/init?
例如,
如果Dockerfile我的第二個最後一行是: CMD ./my_create_mount_script.sh(腳本里面只是一些安裝報表)和我的最後一行是:入口點/ sbin目錄/的init就我所知,它不會對我有任何好處,因爲在這種情況下,ENTRYPOINT期待CMD通過它的參數,沒有別的。
^如果它很重要,我會部署這個容器AWS ECS
是CMD例如你給似乎不工作 - 它似乎只執行次要部分(AFTE分號)。另外,如果我創建一個簡單的.sh文件,並在其中放入/ sbin/init並嘗試將該文件傳遞給ENTRYPOINT,則/ sbin/init(或者只是init)不會被執行。 –
@AliKhan看看這個:https://docs.docker.com/engine/admin/multi-service_container/和這個:http://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/ – Sergiu
謝謝。您提供的鏈接非常有幫助,我能夠清除我的誤解。至於我的用例,我最終使用supervisord作爲進程#2啓動web應用程序,並且我想以進程#1運行腳本。 –