UFO ET IT

Docker Compose를 사용하여 컨테이너에 파일 복사

ufoet 2020. 12. 9. 20:57
반응형

Docker Compose를 사용하여 컨테이너에 파일 복사


나는이 Dockerfile내가 잘 작동 컨테이너에 (컨텐츠) 기존 디렉토리를 복사 여기서

Dockerfile

FROM php:7.0-apache
COPY Frontend/ /var/www/html/aw3somevideo/
COPY Frontend/ /var/www/html/

RUN ls -al /var/www/html
RUN chown -R www-data:www-data /var/www/html 
RUN chmod -R 755 /var/www/html 

docker exec를 사용한 디렉토리 목록 스크린 샷

그러나 docker-compose.yml파일을 사용할 때 디렉토리 만 aw3somevideo있고 내부 aw3somevideo에는 아무것도 없습니다.

docker-compose.yml :

 php:
    build: php/
    volumes:
      - ./Frontend/ :/var/www/html/
      - ./Frontend/index.php :/var/www/html/
    ports:
      - 8100:80

빈 디렉토리 목록의 스크린 샷

의 기능을 이해하지 못할 수도 있습니다 volumes. 그렇다면 기존 파일을 파일을 통해 컨테이너에 복사하는 방법을 알려주세요 docker-compose.yml.


2017 년 4 월 업데이트 됨

원래 답변을 작성한 이후로 행동이 변경되었습니다. 이제 오른쪽이 이름이 지정된 볼륨을 지정하는지 myvolume또는 호스트의 경로를 지정하는지 여부가 일관 /var/lib/myapp됩니다. 예를 들어

    volumes:
      - /dir/on/host:/var/www/html

/dir/on/host존재하지 않는 경우 호스트에 생성되고 빈 콘텐츠가의 컨테이너에 마운트됩니다 /var/www/html. /var/www/html이전에 있던 것이 무엇이든 접근 할 수 없습니다.

---- 이전 답변 -----------

volumes:docker-compose 섹션은 /var/www/html디렉토리 에있는 모든 것을 덮어 씁니다 .

두 가지 주요 상황이 있습니다.

  1. 볼륨이 있습니다.

    이 경우 볼륨의 내용이 dst 디렉토리에있는 모든 내용을가립니다.

    예 :

    volumes:
      - /dir/on/host:/var/www/html
    
  2. 볼륨이 존재하지 않습니다

    myvolume존재하지 않는 경우 (예 : 명명 된 볼륨), / var / www / html의 내용이 처음에 볼륨에 복사됩니다.

    volumes:
      - myvolume:/var/www/html
    

경우 2의 경우 일부 컨테이너에 동일한 볼륨을 다시 마운트하려고하면 경우 1을 따릅니다.

    volumes:
      - myvolume:/var/www/html

이 경우 (myvolume이 이미 생성되었다고 가정) / var / ww / html의 내용은 myvolume.

공식 문서는 https://docs.docker.com/compose/compose-file/#/volumes-volume-driver 에 대한 자세한 정보로 이동합니다.

참고 URL : https://stackoverflow.com/questions/39176561/copying-files-to-a-container-with-docker-compose

반응형