자율 학습/스터디

[Docker] dockerfile 작성해서 도커 image 만들기 (커스텀 이미지)

2024. 6. 20. 00:49

커스텀 redis 이미지 만드는 방법

1. redis-image 라는 이름의 폴더 생성

 

2. intellij나 vscode로 폴더 열기

 

3. 'Dockerfile' 이름으로 파일 생성

 

4. 내용 작성

💡dockerfile의 3가지 구성 요소:  1) FROM  2) RUN  3) CMD

FROM alpine

RUN apk add --update redis

CMD ["redis-server"]

 

4. 도커 이미지 생성

 

터미널 열고 Dockerfile 경로에서 빌드 돌리기

docker build .

 

 

[캡처 설명]

도커 CLI가 dockerfile을 도커 서버에 넘기면 도커 서버는 alpine을 로컬에서 탐색해본다.
1-1. 없으면 도커 허브에서 alpine 이미지를 받아온다.
alpine 이미지의 파일 시스템 중 apk가 있고, 비어 있는 운영체제니까 run command는 아무것도 없다.
1-2. alpine 이미지로 베이스 컨테이너를 만들고 파일 시스템을 그대로 복사해서 넣어준다.
2-1. 그 컨테이너 안에서 RUN apk add --update redis 명령이 실행된다.
2-2. redis가 컨테이너 파일시스템에 추가된다.
2-3. 스냅샷을 생성하고 그 컨테이너는 날려버린다. = alpine 이미지에 redis가 추가된 임시 이미지 생성
3. 임시 이미지를 컨테이너화 한 다음, CMD ["redis-server"] 를 run command에 추가해준다. = 새 도커 이미지

캐싱이 되고 있으므로 다음 빌드 때는 중간 과정이 빨리 진행된다.

 

5. 도커 이미지 실행

 

빌드 돌려서 출력된 내용 중 하단에 writing image sha256: 다음 문자열이 도커 이미지 ID 이다.
예를 들어 아래와 같이 출력됐을 때,
 => => writing image sha256:73f1d9fc02c80def3130f29c9     
docker run 73f 까지만 입력해도 실행이 된다.

docker run -it {이미지ID}

또는

docker run -it {태그}

 

 

6. 도커 이미지 목록 출력

docker images

 


💡도커 이미지 태깅 방법

이미지 생성할 때 -t 옵션을 사용한다.

보통은 {유저ID}/{프로젝트명}:{버전}

docker build . -t test/redis:latest

태깅 전
태깅 후

 

도커 데스크탑에서 바로 보인다! 신기함!