
[COPY : 파일 복사(이동)]
COPY는 호스트 컴퓨터에 있는 파일을 복사해서 컨테이너로 전달한다.
# 문법
COPY [호스트 컴퓨터에 있는 복사할 파일의 경로] [컨테이너에서 파일이 위치할 경로
# 예시
COPY app.txt /app.txt
[파일 복사해보기]
1. host.txt 만들기 (host.txt 파일 안에는 "host 입니다" 라는 메시지가 담겨짐)
2. Dockerfile 만들어서 이미지 생성 및 컨테이너 실행
FROM ubuntu
COPY host.txt /container.txt
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [Container ID] bash
$ ls

[폴더 안에 있는 모든 파일들 복사]
1. my-app 디렉토리 만들기, my-app 디렉토리 안에 파일 만들기
2. Dockerfile 만들어서 이미지 생성 및 컨테이너 실행


FROM ubuntu
COPY hostDir /containerDir/
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] # 디버깅용 코드
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [Container ID] bash
$ ls

[와일드 카드 사용해보기]
만약 내가 호스트 컴퓨터에 있는 .txt 파일들을 전부 복사해오고 싶어..! 이럴 땐 어떻게 해야해?
1. 일단 호스트 컴퓨터에 있는 .txt 파일들을 임의로 만들어준다.(Ex. app.txt, readme.txt ...)
2. Dockerfile 만들어서 이미지 생성 및 컨테이너 실행
FROM ubuntu
COPY *.txt /text-files/
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] # 디버깅용 코드
- 주의) /text-files 라고 적으면 안되고 /text-files/ 라고 적어야 text-files 라는 디렉토리 안에 파일들이 정상적으로 복사된다.
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [Container ID] bash
$ ls
[.dockerignore 사용해보기]
특정 파일 또는 폴더만 copy를 하고싶지 않아 이럴 때는 어떻게 해야할까?
1. .dockerignore 파일 만들기
# .dockerignore
readme.txt
2. Dockerfile 만들어서 이미지 생성 및 컨테이너 실행
# Dockerfile
FROM ubuntu
COPY ./ /
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] # 디버깅용 코드
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [Container ID] bash
$ ls
실행해 보면 readme.txt 만 제외하고 잘 복사가 되었을 것이다!
'Back-End > Docker' 카테고리의 다른 글
| DOCKER RUN과 WORKDIR (0) | 2025.01.27 |
|---|---|
| Spring Boot 프로젝트를 Docker로 실행시키기 (0) | 2025.01.27 |
| Dockerfile을 활용해 이미지 직접 만들기 (0) | 2025.01.27 |
| Docker Volume을 이용해 MySQL 실행하기 (0) | 2025.01.27 |
| Docker Volume (0) | 2025.01.27 |