2015-05-26 11 views
24

Napisałem Dockerfile który wygląda jak tenJak skopiować plik z hosta do pojemnika za pomocą Dockerfile

FROM ubuntu:12.04 

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

Teraz mam plik o nazwie abc.txt w moim komputerze hosta. Jak mogę skopiować go do tego kontenera. Czy jest jakiś krok, który można dodać w pliku Dockerfile, który kopiuje z hosta do kontenera.

+0

przy okazji, wget jest już zawarty w Ubuntu 12.04, o ile mnie pamięć nie myli – user2915097

+2

aktualizację i zainstalować należy prawdopodobnie umieszczone w jednej linii, zobacz https://docs.docker.com/articles/dockerfile_best-practices/#run –

+0

czy chcesz plik w _docker image_ lub tylko w _docker container_? – Thomasleveil

Odpowiedz

36

użycie COPY polecenie tak:

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 

czytaj więcej szczegółów na kopię w official documentation

Alternatywą byłoby używać ADD, ale nie jest to najlepsza praktyka, jeśli nie chcesz używać zaawansowanych funkcji ADD takich jak dekompresja plików tar.gz. Jeśli nadal chcesz użyć polecenia ADD, zrób to tak:

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 

czytaj więcej szczegółów na dodawanie w 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 
Powiązane problemy