2016-11-09 18 views
0

我犯了這樣的Dockerfile建立自己的錯誤,並寫入到另一個文件夾

FROM hyeshik/tailseeker:latest 
RUN rm /opt/tailseeker/conf/defaults.conf 
COPY /Users/Downloads/defaults.conf /opt/tailseeker/conf/ 
COPY /Users/Downloads/level2/* /opt/tailseeker/refdb/level2/ 
COPY /Users/Downloads/level3/* /opt/tailseeker/refdb/level3/ 

我/用戶/下載/文件夾也有其他文件夾名爲輸入

當我跑

docker build -f /Users/Downloads/Dockerfile /Users/Downloads/ 
一個dockerfile

我收到一條錯誤消息,說

Sending build context to Docker daemon 126.8 GB 
Error response from daemon: Error processing tar file(exit status 1): write /input/Logs/Log.00.xml: no space left on device 

這裏有一件奇怪的事情,它爲什麼試圖寫入輸入文件夾?另一個是爲什麼它會抱怨設備上沒有剩餘空間。我有1TB磁盤,只有210GB被使用。我也使用了qemu-img並調整了我的Docker.qcow2。這裏是我的Docker.qcow2的信息

image:/Users/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 
file format: qcow2 
virtual size: 214G (229780750336 bytes) 
disk size: 60G 
cluster_size: 65536 
Format specific information: 
    compat: 1.1 
    lazy refcounts: true 
    refcount bits: 16 
    corrupt: false 

任何人都可以請幫我從我的/內容,用戶/ Downloads文件夾複製到泊塢窗圖像通過上面dockerfile?

在此先感謝。

回答

2

build首先從上下文目錄創建一個tarball(在你的案例中/Users/Downloads/)並將該tarball發送到服務器。 tarball是在tmp目錄中創建的,這可能是您嘗試構建時空間不足的原因。

當您處理大型數據集時,推薦的方法是使用卷。您可以使用綁定掛載捲來掛載主機中的文件。

如果您要添加的文件不是那麼大,您可能需要使用.dockerignore忽略/Users/Downloads下的其他文件。

您也可以開始使用$DOCKER_TMPDIR

+0

我可以直接從我的本地文件複製到圖像而不建立一個替代的臨時目錄中泊塢窗守護進程?假設我的目錄內容具有文件夾輸入,tocopy1,tocopy2,output.txt。如果我只想複製文件夾到copy1(58GB),copycopy2(739MB)和文件output.txt(2KB),我可以不用建設嗎?我明白,如果我將.dockerignore文件添加到此文件夾,輸入文件夾將被忽略。 –

+0

您可以使用'docker cp'和'docker commit'來創建一個圖像 – dnephin

相關問題