쿠버네티스 교육/강의 내용 정리

220617_2_도커_Dockerfile 명령 ADD / COPY / VOLUME

kimhope 2022. 6. 17. 15:24
728x90

파일 설정


ADD: 파일 및 디렉토리 추가

이미지에 호스트상의 파일이나 디렉토리를 추가할 때 사용

ADD <호스트 파일 경로> <Docker 이미지 파일 경로>ADD ["<호스트 파일 경로>" "<Docker 이미지 파일 경로>"]

  • 호스트상의 파일이나 디렉토리, 원격 파일을 Docker 이미지 안으로 복사

 

  • 호스트 상의 host.html 파일을 이미지 안의 /docker_dir/에 추가
  • Dockerfile이 있는 경로에 host.html 파일 생성
# host.html 파일 생성
[root@localhost Dockerfile]# touch host.html
[root@localhost Dockerfile]# ls
Dockerfile  Dockerfile.base  host.html  index.html  website.tar

 

 

  • Dockerfile 작성
[root@localhost Dockerfile]# vi Dockerfile
FROM centos:7

ADD host.html /docker_dir/

 

  • add 이미지 빌드
[root@localhost Dockerfile]# docker build -t add .
Sending build context to Docker daemon  15.36kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
Step 2/2 : ADD host.html /docker_dir/
 ---> Using cache
 ---> 8d416c2d5b91
Successfully built 8d416c2d5b91
Successfully tagged add:latest

 

 

  • 생성한 add 이미지를 이용한 컨테이너 실행
[root@localhost Dockerfile]# docker run -it add

 

  • 실행된 컨테이너의 /docker_dir/ 경로에서 복사된 host.html 파일 확인
[root@0f90594633cd /]# ls /docker_dir/
host.html

 


 

COPY: 파일 복사

이미지에 호스트상의 파일이나 디렉토리를 복사할 때 사용

COPY <호스트 파일 경로> <Docker 이미지 파일 경로>

COPY ["<호스트 파일 경로>" "<Docker 이미지 파일 경로>"]

  • ADD 명령과 유사함
  • ADD 명령: 원격 파일의 다운로드나 아카이브 압축 해제 등과 같은 기능이 있음
  • COPY 명령: 호스트상의 파일을 이미지 안으로 복사하는 처리만 함

 


 

VOLUME: 볼륨 마운트

이미지에 볼륨 할당

VOLUME ["/마운트 포인트"]

  • 지정한 이름의 마운트 포인트 작성
  • 호스트나 그 외 다른 컨테이너로부터 볼륨의 외부 마운트를 수행함
  • 영구 데이터 저장이 필요한 경우 컨테이너 밖의 Docker의 호스트 머신상의 볼륨이나 공유 스토리지 볼륨에 마운트하여 사용
  • ==> 컨테이너는 영구 데이터를 저장하는 데 적합하지 않음
  • 설정 가능한 값
# JSON 배열
VOLUME ["/var/log/"]

# 또는
VOLUME /var/log

# 여러 개의 인수로된 문자열
VOLUME /var/log /var/db
728x90