프로그래밍

[Docker] 따라하며 배우는 도커 - 직접 도커 이미지를 만들어 보기 (2)

가시가되어 2023. 4. 21. 17:23

 

도커 이미지 생성순서

 

1. Dockerfile 작성

: Dockerfile 이란 Docker Image를 만들기 위한 설정 파일

: 컨테이너가 어떻게 행동해야 하는 지에 대한 설정들을 정의해줌.

 

2. 도커 클라이언트

: 도커 파일에 입력된 것들이 도커 클라이언트에 전달

 

3. 도커 서버

: 도커 클라이언트에 전달된 모든 중요한 작업을 하는 곳

 

4. 이미지 생성

 

 

Dockerfile 만들기

도커 파일 만드는 순서(도커 이미자 필요한 것이 무엇인지 생각)

 

1. 베이스 이미지 명시 (파일 스냅샷에 해당)

2. 추가적으로 필요한 파일을 다운 받기 위한 몇가지 명령어를 명시(파일 스냅샷에 해당)

3. 컨테이너 시작 시 실행 될 명령어를 명시

 

* 베이스 이미지란?

- 도커 이미지는 여러 개의 레이어로 되어 있음. 그중에서 베이스 이미지는 이 이미지의 기반이 되는 부분

- 레이어는 중간 단계의 이미지

- 간단하게 베이스 이미지는 OS라고 생각해도 됨.

 

DokerFile

 

FROM 

: 이미지 생성 시 기반이 되는 이미지 레이어

 

RUN

: 도커 이미지 생성되기 전에 수행할 쉘 명령어

 

CMD

: 컨테이너가 시작되었을 때 실행할 실행 파일 또는 쉘 스크립트

: 해당 명령어는 1회만 사용가능

# 베이스 이미지를 명시하기
FROM baseImage

# 추가적으로 필요한 파일들을 다운로드 받기
RUN command

# 컨테이너 시작시 실행될 명령어
CMD ['executable']

 

도커파일로 도커 이미지 만들기

Build 명령어는 해당 디렉토리 내에서 도커파일이라는 파일을 찾아 도커 클라이언트에 전달

docker build ./ 또는 doker build .

터미널에서 해당 명령어 실행

베이스 이미지에서 다른 종속성이나 새로운 커맨드 추가할 때는 

임시 컨테이너 생성 후 해당 컨테이너를 토대로 새로운 이미지 생성

임시 컨테이너는 삭제처리 함.

 

도커 이미지 이름 설정

 

도커 이미지의 명칭이 sha256 으로 인해 아주 길게 되어있어 

이미지 명칭을 기억하기 어려우므로, 이를 Build 할때 이름을 지정해주기.

# docker build -t(tag 명령어) 저장소이름/레포지토리:버전명 ./
docker build -t myhello/hello:v1 ./