도커 이미지를 만들어보자

cdwde·2022년 10월 3일
0

Docker

목록 보기
3/8
post-thumbnail

✅ Dockerfile 만들기

Dockerfile은 도커 이미지를 위한 설정 파일이며 컨테이너가 어떻게 행동해야 하는지에 대한 설정을 정의해주는 것이다.

  1. 베이스 이미지를 명시(피일 스냅샷)
  2. 추가적으로 필요한 파일을 다운 받기 위한 명령어을 명시
  3. 시작 시 실행될 이미지를 명시(시작 시 실행될 명령어에 해당)

베이스 이미지
도커 이미지는 여러개의 레이어로 되어 있는데, 그 중에 베이스 이미지는 그 이미지의 기반이 되는 부분으로 OS라고 생각하면 된다.

#Dockerfile

#베이스 이미지 명시
FROM baseImage

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

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

FROM

이미지 생성 시 기반이 되는 이미지 레이어
<이미지_이름>:<태그> 형식으로 작성
태그를 붙이지 않으면 자동적으로 가장 최신 것으로 다운로드 받는다

RUN

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

CMD

컨테이너가 시작되었을 때 실행할 실행 파일 or 쉘 스크립트
해당 명령어는 DockerFile내 1회만 쓸 수 있음

✅ Hello를 출력하는 이미지를 생성해보자

먼저 도커 파일을 작성해준다.

FROM alpine

CMD ["echo", "hello"]

이 도커 파일로 이미지를 어떻게 생성할까?
도커 파일에 입력된 것들이 도커 클라이언트에 전달이 되서 도커 서버가 인식을 해야한다.

docker build <파일이_있는_디렉토리경로>

베이스이미지를 임시컨테이너에 넣어주고, 커맨드 넣어주고 임시 컨테이너를 토대로 새로운 이미지를 생성한다!

쬐금 더 자세하게 설명해보자면

  • alpine 이미지를 가져온다
  • 임시 컨테이너 38b6c59bd791를 생성하고, alpine 이미지가 가지고 있는 파일 스냅샷을 하드 디스크에 추가한다.
  • 시작 시 실행할 명령어를 추가한다.
  • 임시 컨테이너 38b6c59bd791로 이미지 b6235c018165를 생성한다.
  • 임시 컨테이너 삭제한다.

정리해보자면 베이스 이미지에서 다른 종속성이나 커맨드를 추가할 때는 임시 컨테이너를 만들고 그 컨테이너를 토대로 새로운 이미지를 만든 후 임시 컨테이너는 지워준다.

✅ 도커 이미지에 이름 주기

docker build -t <나의_도커_아이디>/<저장소_or_프로젝트_이름>:<버전>

참고
따라하며 배우는 도커와 CI환경

0개의 댓글