We are Architect

15단계로 배우는 Docker와 쿠버네티스: 컨테이너 개발-1(7) 본문

Docker

15단계로 배우는 Docker와 쿠버네티스: 컨테이너 개발-1(7)

the best infra 2024. 12. 30. 23:39

 

* 이미지 빌드 개요

  • 컨테이너 이미지는 어떻게 만들어지는가에 대해서 알아보자.
  • 우선 도커 이미지를 만들기 위해서는 dockerfile에 docker build [옵션] [경로] 를 사용하면 된다.
    컨테이너 개발

* 이미지 빌드 개요 - 베이스 이미지 선택

  • 이미지를 만들 때에 바탕이 되는 이미지를 베이스 이미지라고 한다. 베이스 이미지에는 리눅스의 공유 라이브러리, 동적 링크나 로드에 필요한 기초 파일들이 포함된다. 이를 기반으로 사용자 이미지를 만들게 된다.

 

 

* 이미지 빌드 개요 -  소프트웨어 패키지 설치

  • 애플리케이션 실행에 필요한 소프트웨어 패키지를 설치한다. 주로 운영체제나 프로그래밍 언어의 패키지 매니저를 사용해서 설치하게 된다. dockerfile에 설치 스크립트를 기재하면 베이스 이미지 위에 소프트웨어 패키지가 설치된다.

 

 

* 이미지 빌드 개요 -  애플리케이션 소스 코드

  • 깃헙  혹은 로컬에 있는 소스 코드를 이미지에 복사한다. 

 

 

* 이미지 빌드 개요 -  Dockerfile 

  • 이미지를 빌드하는 스크립트가 기재된 파일(4가지)이다.
    • 베이스 이미지의 리포지터리
    • 설치할 패키지
    • 애플리케이션 코드와 설정 파일
    • 컨테이너 기동 시 실행될 명령어.

 

 

* 빌드 실행 순서

  • 진행 흐름
    1. 디렉터리를 준비하여 이미지에 포함시킬 파일들을 모은다.
    2. Dockerfile을 준비한다.
    3. 컨테이너에서 실행할 애플리케이션 코드를 작성하고 유닛 테스트를 실행한다.
    4. 이미지를 빌드한다.
    5. 컨테이너를 실행하고 동작을 확인한다.
  • 1. 디렉터리 준비
    • 폴더를 하나 만든다.
  • 2. Dockerfile을 작성한다.
    • 다음과 같이 작성한다.
      # FROM으로 베이스 이미지 지정, alpine은 리눅스의 기본적인 커맨드만 설치되어 있는 5MB 남짓의 경량 이미지이다.
      FROM alpine:latest 
      
      # RUN으로 컨테이너에서 실행할 명령어 지정. 패키지 매니저 업데이트 및 아스키 아트 출력하는 커맨드를 설치.
      RUN apk update && apk add figlet
      
      # 현재 폴더에 밑에 message라는 파일을 컨테이너 루트 밑에 배치
      ADD ./message /message
      
      # CMD로 컨테이너가 가동된 후 실행하는 커맨드를 지정한다. 'cat message'의 결과를 figlet 커맨드로 전달한다.
      CMD cat /message | figlet


  • 3. 컨테이너에 들어갈 파일을 작성한다.

 

  • 4. dockerfile을 빌드하여 이미지를 만든다.
    • docker build --tag hello:1.0 이라는 명령어를 넣어준다.
      방금 생성된 이미지


  • 5. 이미지를 사용하여 컨테이너를 실행시킨다.
    해당 문구가 잘 출력되었다.