클라우드/도커

[도커] 도커 4: docker 파일 1 (Dockerfile)

KyuminKim 2024. 11. 14. 17:09

지난 시간에 이어,

이번에는 dockerfile을 알아보자


도커파일이란?

- 컨테이너 이미지 생성의 기본이 되는 파일
- 컨테이너의 구성 정보(기본 이미지, 패키지, 추가할 소스코드, 실행할 명령어 등)를 하나의 파일로 기록
- 확장자없이 Dockerfile 또는 (이름).Dockerfile

도커파일 예시 (Dockerfile)

FROM ubuntu:20.04
COPY ./home/text.txt rom_host.txt       # 주석: 호스트의 ./home/test.txt를 컨테이너의 from_host.txt로 복사 
RUN apt-get install                     # 주석: 실행할 명령어를 명시
WORKDIR /var/www/html                   # 주석: 작업 위치를 /var/www/html로 이동합니다
# 주석: 주석 시작은 #로 합니다
 
- 각 줄이 명령들로 이루어져 있으며, build 시 각 줄이 순서대로 실행됨
 
- FROM 명령은 생성할 컨테이너의 베이스 이미지를 지정하며 필수적임
 
- 주석은 맨 앞에 #을 붙여 시작하며, # 뒤로부터 해당 한 줄까지 주석으로 인식
 

 

🙋‍♀️ 주요 도커파일 instruction (중요)

주로 사용되는 명령어니, 숙지하자!


도커파일로부터 이미지 생성하기

docker build -t (이미지이름) (Dockerfile이 존재하는 경로) 형태로 사용한다

$ docker build -t my_image .
$ docker build -t my_image -f test.Dockerfile .           # 특정 도커파일 지정하여 build

 

이 때에는 .으로 경로를 명시하였으므로,

명령어를 실행하는 현재 위치에 존재하는 Dockerfile을 찾는다

(./Dockerfile)

Docker build 명령어

 

🙋‍♀️도커 파일과 이미지 레이어

 
- 레이어로 생성되는 명령어
    - COPY, RUN, WORKDIR, ADD
 
- 레이어로 생성되지 않는 명령어
    - ENV, LABEL 등 메타데이터 설정 명령어
레이어로 생성되는 명령어
$ docker history my_image_from_dockerfile

이 명령어를 통해 새로 생성된 layer를 확인할 수 있다.

이 경우, COPY 명령어로 host 컴퓨터의 파일을 컨테이너로 전송한 이력이 남는다


도커파일 VS 컨테이너 commit

이상하다,

https://this-is-a.tistory.com/46?category=1147221

 

[도커] 도커 3: docker 명령어 모음 2탄 (도커 이미지 관련 명령어)

지난 시간에 이어,유용한 docker 명령어를 알아보자도커 컨테이너 이미지 다운로드$ docker pull centos:latest # 이미지이름:버전 $ docker pull registry.hub.docker.com/ubuntu:latest # url(http://제거)로 pull도커 허브

www.kyumin.blog

지난번 글에 따르면,

$ docker commit my_running_container                          # 실행 중인 컨테이너를 이미지로 생성
$ docker commit -a “lemon” my_running_container               # 작성자 기입하여 컨테이너를 이미지로 생성 
$ docker commit -m “my first commit” my_running_container     # 주석을 기입하여 컨테이너를 이미지로 생성

 

docker commit 명령어를 통해

현재 컨테이너로부터 도커 컨테이너 이미지를 만들 수 있었다

 

컨테이너로부터 이미지 생성 VS Dockerfile 생성

 


다음 시간에는 Dockerfile을 좀 더 알아보자!