ENTRYPOINT 語法是 container執行後,進入container第一個執行的指令,寫法如下範例等等解釋指令。
ENTRYPOINT ["tail", "-f", "/dev/null"]
Container 跑起來以後,如果Dockerfile 內撰寫的內容,是短暫的任務,例如 回傳 hello world 而已,container 跑起來,會顯示hello world 後 container 就會停止了。
可以看到Container 狀態變成 Exited ,但是沒有刪除,只是沒有執行而已。
因為它沒有執行,所以你不能進入到容器裡面,例如像exec指令我們將無法進入容器內。
docker exec {container名稱}
我們就算再使用 start
指令,還是會執行後,容器會馬上停止。
可以使用 tail -f /dev/null
指令讓container 執行後不會馬上關閉,保持開啟裝態。
我個人認為比較好debug 使用,所以才用這個命令
基本上 ENTRYPOINT
就是在啟動以後想要執行的第一個指令。
ENTRYPOINT
這個語法是會被覆蓋的,如果前面寫過,後面再寫一次,只會執行最後面那個語法設定的指令。
除了 ENTRYPOINT
還有 CMD
類似的語法,我們在下一篇說明。