我想在我的容器啓動時設置一些配置,因爲我使用的是shell腳本。但是當我的腳本結束時,我的容器就會退出,我嘗試使用-d標誌/分離模式,但它永遠不會以分離模式運行。Dockerfile CMD指令將在運行後立即退出容器
下面是我Dockerfile
FROM ubuntu:14.04
ADD shell.sh /usr/local/bin/shell.sh
RUN chmod 777 /usr/local/bin/shell.sh
CMD /usr/local/bin/shell.sh
下面是我的shell腳本
#!/bin/bash
echo Hello-docker
運行沒有任何標誌
docker run hello-docker
這將打印 '你好,泊塢窗' 上我的控制檯並退出
與-itd標誌
docker run -itd hello-docker
我看到的區別是在命令部分,當我運行的其他圖像命令部分會顯示「/斌/慶典」,並將繼續在分離模式。
當我跑我的形象與shell腳本命令部分容器將顯示「/ bin/sh的-c在/ usr /失水」,並退出。
我想運行容器,直到我不能手動停止。
編輯:
在Dockerfile添加入口點指令後,這將不執行我的shell腳本:(
FROM ubuntu:14.04
ADD shell.sh /usr/local/bin/shell.sh
RUN chmod 777 /usr/local/bin/shell.sh
CMD /usr/local/bin/shell.sh
ENTRYPOINT /bin/bash
按搬運工文檔here
運行具有替代參數的容器時,CMD將被覆蓋,所以如果我運行docker映像並帶有如下的一些參數,將不會執行CMD指令。 :(
sudo docker run -it --entrypoint=/bin/bash <imagename>
但是這不會執行CMD指令,我的shell腳本不會執行。 :( –
這是正確的,你不能同時擁有這兩個,唯一的另外一個選擇是讓你的'CMD'繼續運行,我在我的答案中加了一個例子 – NZD
但是我也想執行我的腳本, –