2015-05-26 13 views
24

Ich habe eine Dockerfile geschrieben, wie dieser nunWie Datei vom Host zum Container kopieren Dockerfile mit

FROM ubuntu:12.04 

RUN apt-get update 
RUN apt-get install -y wget 

sieht Ich habe eine Datei abc.txt in meiner Host-Maschine genannt. Wie kann ich es in diesen Container kopieren? Gibt es einen Schritt, den ich hinzufügen kann in Dockerfile, die von Host zu Container kopieren.

+0

durch die Art und Weise zu lesen, wird wget bereits in Ubuntu 12.04 enthalten, wenn der Speicher dient mir – user2915097

+2

Ihr Update und installieren Sie wahrscheinlich auf einer Linie platziert werden soll, Siehe https://docs.docker.com/articles/dockerfile_best-practices/#run –

+0

Möchten Sie die Datei in einem _docker image_ oder nur in einem _docker container_? – Thomasleveil

Antwort

36

Verwenden COPY-Befehl wie folgt aus:

COPY foo.txt /data/foo.txt 
# where foo.txt is the relative path on host 
# and /data/foo.txt is the absolute path in the image 

mehr lesen Details für COPY in der official documentation

Eine Alternative wäre, ADD zu verwenden, aber dies ist nicht die beste Vorgehensweise, wenn Sie einige erweiterte ADD-Funktionen wie die Dekomprimierung von tar.gz-Dateien nicht verwenden möchten. Wenn Sie ADD-Befehl weiterhin verwenden möchten, tun Sie es wie folgt:

ADD abc.txt /data/abc.txt 
# where abc.txt is the relative path on host 
# and /data/abc.txt is the absolute path in the image 

weitere Details für ADD in der official documentation

0
I faced this issue, I was not able to copy zeppelin [1GB] directory into docker conatiner. and getting issue "COPY failed: stat /var/lib/docker/tmp/docker-builder977188321/zeppelin-0.7.2-bin-all: no such file or directory" 

I am using docker Version: 17.09.0-ce and resolved issue by following steps. 
Step 1: copy zeppelin directory [which i want to copy into docker package]into directory contain "Dockfile" 
Step 2: edit Dockfile and add command [location where we want to copy] 
ADD ./zeppelin-0.7.2-bin-all /usr/local/ 
Step 3: go to directory which contain DockFile and run command [alternatives also available] 
docker build . 

Step 4: docker image created Successfully with logs 
Step 5/9 : ADD ./zeppelin-0.7.2-bin-all /usr/local/ 
---> 3691c902d9fe 
Step 6/9 : WORKDIR $ZEPPELIN_HOME 
---> 3adacfb024d8 .... 
Successfully built b67b9ea09f02