2017-08-14 107 views
0

Dockerfile容器退出時搬運工運行命令

FROM node:8.1.0 
RUN http-server 
RUN mkdir /app 
COPY . /app 
WORKDIR /app 
RUN npm install 
EXPOSE 2000 

建立成功

docker run -d -p 8101:2000 --name xyz image 

容器中創建和離開圖像。 運行時docker logs container_id,沒有顯示。

這是我跟隨的過程,但無法知道我的容器退出的原因。

+1

它正在運行默認入口點,並且當入口點完成其工作時,容器退出。 – Ayushya

+0

沒問題,明白了,你可以跟我分享這個參考嗎? – Aditya

+0

我想從[library/node](https://hub.docker.com/_/node/) – Ayushya

回答

1

它正在運行默認入口點,並且當入口點完成其工作時,容器退出。

如果要編輯入口點,那麼要麼指定您自己的入口點,要麼查看默認入口點在做什麼。你可能會發現你的特定版本的dockerfile ANS入口點細節library/node

0

只要Docker文件中的CMD命令啓動的進程仍在運行,Docker容器就會運行。

就你而言,你沒有在你的docker文件中指定CMD命令,因此你的容器會立即退出。

我可以看到你打算運行一個http服務器。在這種情況下,請刪除RUN http-server並最終替換爲CMD http-server

0

您可以嘗試ping google.comCMDENTRYPOINT,使容器的連續過程。有些情況下,即使流程應該很快結束,您仍然需要讓該容器仍然運行。示例是您的cron尚未準備好進行自動刮取時