방법
의미는 호스트 컴퓨터에 있는 파일을 복사해서 컨테이너로 전달하는 것입니다.
COPY <호스트의_경로> <컨테이너의_경로>
확인을 위해 아래의 파일을 생성하고 Dockerfile 에는 아래의 명령어를 입력합니다.
- test.txt (test file 이라고 입력)
COPY test.txt /test.txt
그리고 Dockerfile을 build 하여 이미지를 생성합니다.
생성한 이미지를 통해 컨테이너를 생성하고 실행합니다.
실행한 컨테이너에 접속합니다.
접속 후 아래의 명령어 ls -a 를 통해 test.txt 파일을 찾을 수 있습니다.
해당 파일을 실행하면 위에서 적은 test file 이라는 결과가 나옵니다.
cat test.txt // test.txt 실행 명령어
파일이 아닌 폴더도 가능
앞에서 호스트 컴퓨터에 있는 파일을 복사하여 컨테이너에 전달하였습니다.
이와 동일하게 파일이 아닌 폴더도 가능합니다.
이렇게 하나의 폴더에 두 개의 파일을 만들고 내용을 기입합니다.
COPY copy_folder /copy_folder/
폴더라는 것을 나타내기 위해 마지막에 슬러쉬(/) 를 기입합니다.
그리고 이미지를 생성 및 컨테이너 생성 그리고 실행합니다.
그리고 컨테이너에 들어가서 확인을 합니다.
copy_foler 가 보이고 해당 폴더로 들어가면 하위에 두 개의 파일이 있었던 것 처럼 보입니다.
해당 파일을 실행하면 파일안에 있는 데이터를 확인도 가능합니다.
이렇게 두 개의 파일안을 확인해보니 동일하게 복사가 된 것을 확인하였습니다.
폴더를 넘어 전체 복사하는 방법
해당 폴더 안에 있는 모든 것을 복사하고 싶은 경우가 있을 것입니다.
이러한 경우 아래와 같이 입력하면 됩니다.
COPY ./ /
의미는 호스트의 현재 디렉터리(./)에 있는 모든 파일과 폴더를 컨테이너의 루트 디렉터리(/)로 복사하는 것입니다.
여기서 불필요한 파일을 제외하기 위해 .dockerignore 가 사용되기도 합니다.
그래서 일반적으로 더 나은 방법 (정리된 구조) 으로는
COPY ./ /app
등으로 특정 폴더에 넣는 것을 추천합니다.
'Docker' 카테고리의 다른 글
[Docker] Dockerfile 과 RUN 명령어 (0) | 2025.02.26 |
---|---|
[Docker] Dockerfile 과 ENTRYPOINT 명령어 (0) | 2025.02.26 |
[Docker] Dockerfile 을 만들기 그리고 FROM 명령어 (0) | 2025.02.21 |
[Docker] 실행중에 있는 컨테이너 내부에 접속하기 (0) | 2025.02.20 |
[Docker] 포트 포워딩을 이용하여 설치한 이미지에 접속하기 (0) | 2025.02.20 |