Development Tip

Dockerfile을 사용하여 호스트에서 컨테이너로 파일을 복사하는 방법

yourdevel 2021. 1. 7. 20:08
반응형

Dockerfile을 사용하여 호스트에서 컨테이너로 파일을 복사하는 방법


다음과 같은 Dockerfile을 작성했습니다.

FROM ubuntu:12.04

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

이제 abc.txt호스트 컴퓨터에서 호출 파일이 있습니다. 이 컨테이너에 어떻게 복사 할 수 있습니까? 호스트에서 컨테이너로 복사하는 Dockerfile에 추가 할 수있는 단계가 있습니까?


다음과 같이 COPY 명령을 사용하십시오.

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

공식 문서 에서 COPY에 대한 자세한 내용을 읽으십시오.

대안은 ADD를 사용하는 것이지만 tar.gz 파일의 압축 해제와 같은 ADD의 일부 고급 기능을 사용하지 않으려는 경우 모범 사례가 아닙니다. 그래도 ADD 명령을 사용하려면 다음과 같이하십시오.

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

공식 문서 에서 ADD에 대한 자세한 내용을 읽으십시오.


이 (매우 불분명 한) 오류가 발생하는 사람들을 위해 :

복사 실패 : stat /var/lib/docker/tmp/docker-builderXXXXXXX/abc.txt : 해당 파일 또는 디렉토리 없음

다음과 같은 많은 이유가있을 수 있습니다.

  • docker-compose 사용자의 경우 docker-compose.yml이 Dockerfile context의 컨텍스트를 덮어 씁니다. 이제 COPY 문은 Dockerfile을 기준으로하는 대신 docker-compose.yml에 정의 된 항목을 기준으로 경로를 탐색해야합니다.
  • COPY 행의 후행 주석 또는 세미콜론 : COPY abc.txt /app #This won't work
  • 파일이 .dockerignore또는 .gitignore파일에서 무시되는 디렉토리에 있습니다 (와일드 카드주의).
  • 오타를 만들었습니다.

때로는 실패한 작업이 WORKDIR /abc뒤 따르지만 약간 못 생겼습니다.COPY . xyz/COPY /abc xyz/


ADD 명령 https://docs.docker.com/engine/reference/builder/#/add 또는 COPY 명령 https://docs.docker.com/engine/reference/builder/#/copy를 사용할 수 있습니다.


이 문제에 직면하여 zeppelin [1GB] 디렉토리를 도커 컨테이너에 복사 할 수 없었고 문제가 발생했습니다.

복사 실패 : stat /var/lib/docker/tmp/docker-builder977188321/zeppelin-0.7.2-bin-all : 해당 파일 또는 디렉토리 없음

Docker 버전 : 17.09.0-ce를 사용하고 있으며 다음 단계로 문제를 해결했습니다.

1 단계 : zeppelin 디렉터리 [도커 패키지에 복사하려는]를 "Dockfile"이 포함 된 디렉터리에 복사합니다.

2 단계 : Dockfile 편집 및 [복사 할 위치] 명령 추가 ADD ./zeppelin-0.7.2-bin-all / usr / local /

3 단계 : DockFile이 포함 된 디렉토리로 이동하고 명령을 실행합니다. [대안 사용 가능] docker build

4 단계 : 로그를 사용하여 성공적으로 생성 된 Docker 이미지

5/9 단계 : ./zeppelin-0.7.2-bin-all / usr / local / ---> 3691c902d9fe 추가

6/9 단계 : WORKDIR $ ZEPPELIN_HOME ---> 3adacfb024d8 .... b67b9ea09f02를 성공적으로 구축했습니다.

참조 URL : https://stackoverflow.com/questions/30455036/how-to-copy-file-from-host-to-container-using-dockerfile

반응형