2016-10-08 57 views
8

我在運行docker文件時收到docker的錯誤。它說/ var/lib/docker/aufs/layers/xxxx:當我運行Docker構建時沒有這樣的文件或目錄。Docker - 沒有這樣的文件或目錄

我已經嘗試了很多方法來刪除容器和圖像,所以我幾乎在這一個股票。

任何

泊塢窗文件是:

FROM node:6 

RUN git clone https://github.com/preboot/angular2-webpack.git 

WORKDIR angular2-webpack 

RUN sed -i.bak 's/--port 8080/--host 0.0.0.0 --port 8080/' 
package.json RUN npm i 

CMD [ "npm", "run", "start" ] 

完整的控制檯輸出爲:

Sending build context to Docker daemon 
9.728 kB 
Step 1 : FROM node:6 
6: Pulling from library/node 
6a5a5368e0c2: Already exists 
7b9457ec39de: Already exists 
ff18e19c2db4: Already exists 
6a3d69edbe90: Already exists 
0ce4b037e17f: Already exists 
82252a100d5a: Already exists 
Digest: 
sha256:db245bde5445eb122d8dc090ba98539a9ef7f56c0ea981ade643695af0d8eaf0 
Status: Downloaded newer image for node:6 
---> 9873603dc506 Step 2 : 
RUN git clone https://github.com/preboot/angular2-webpack.git open 
/var/lib/docker/aufs/layers/9319fd93cb6d6718243ff2e65ce5d2aa6122a1bb9211aa9f8e88d85c298727e5: 
no such file or directory User:docker-test 

編輯

的問題就解決了ŧ漢克斯@BMitchs'推薦:

  1. 室射頻的/ var/lib中/泊塢窗/ *
  2. 卸載碼頭工人完全
  3. 重新安裝搬運工
+0

您可能需要在運行git clone之前指定工作目錄,否則將克隆到指定爲其工作目錄的原始節點映像中。 – bspates

回答

4

有了這樣的腐敗,我會給一個完整的碼頭工擦拭一下,rm -rf /var/lib/docker/*。在此之前,請備份任何數據(卷),然後關閉docker,然後您需要重新提取或重建所有圖像。如果aufs仍然存在問題,請嘗試更改文件系統驅動程序,例如在服務啓動時更改爲dockerd -s overlay2

首先檢查常見問題(如磁盤空間不足或舊版本的應用程序)不會受到影響。

+0

謝謝,刪除工作的文件夾。我將更新問題以包含我爲解決問題所採取的步驟。 – Jimi

1

嘗試在乾淨再建設中的形象機器或使用--no-cache標誌,這看起來像是一個緩存問題。

另外 - 在我的公司,我們將代碼克隆到構建映像的機器中,然後將代碼複製到容器中。在我看來 - 這是一個更好的解決方案,但我認爲這是一個品味問題。

+0

我同意將代碼克隆到主機,並將它複製到容器中。這樣你可以控制實際使用的版本/修訂版本。在OP的情況下,根據容器的建造日期不同,容器可能會有不同的版本。 – Martin

+0

我試圖使用--no-cache標誌,但得到相同的錯誤 – Jimi

相關問題