2017-02-03 49 views
1

我Dockerfile是搬運工日誌不記錄分離EXEC

FROM node:4 

RUN npm install -g yarn 

WORKDIR /app 

我跑docker run -d並安裝我的當前工作目錄卷。所有代碼均由yarn安裝。我有一個npm腳本來綁定這些文件。

如果我做docker exec -it [container] npm run lint它按預期工作,我可以看到所有的日誌。但如果我做docker exec -itd [container] npm run lint,它會立即退出,這是預期的。但我無法通過運行docker logs [container]來查看日誌。我如何重新附加exec或只是看到日誌?

我試圖docker attach [container]它去的的NodeJS的REPL。這是爲什麼?

回答

2

正如在 「Docker look at the log of an exited container」 中提到,您可以使用docker logs

docker logs -t <container> 

,將顯示標準輸出/標準錯誤(與因爲-t選項的時間戳)。

對於最後50行的日誌:

docker logs -t <container id> | tail -n 50 

注:這隻會如果NPM運行皮棉由您的容器中運行的工作(docker run <image> npm run lint

如果您docker exec立即存在,那麼肯定,容器本身不會產生日誌。

+0

我嘗試了命令,但它似乎並沒有工作。我跑'泊塢窗運行-d'然後'泊塢窗EXEC -itd [容器]'所以我懷疑這是因爲它的運行分離模式分離模式。 – stevemao

+0

@stevemao首先檢查您的容器沒有與碼頭工人PS退出。 – VonC

+0

@stevemao我已經編輯了答案:'泊塢窗logs'將顯示容器做什麼,而不是什麼'泊塢窗exec'不會(因爲'泊塢窗exec'已經停止,它不會做什麼了) – VonC