Post

Dockerfile로 Image 빌드하고 Container 실행하기


이번 글에서는 Dockerfile을 이용해 Docker Image를 빌드하고, 빌드한 Image로 Docker Container를 실행하는 방법을 설명한다.

Dockerfile


먼저 Dockerfile은 Docker Image를 만들기 위해 명령어들을 모아놓은 스크립트 파일이다.

이 글에서 만들어 볼 Docker Image는 KST시간대가 설정된 Ubuntu이고, Dockerfile은 아래와 같다.

1
2
3
4
5
6
7
8
9
10
FROM ubuntu

ARG DEBIAN_FRONTEND=noninteractive

RUN apt update
RUN apt upgrade -y
RUN apt install -y tzdata

ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

핵심 내용은 다음과 같다.

  • FROM ubuntu : ubuntu Docker Image를 Base로 지정
  • ARG DEBIAN_FRONTEND=noninteractive : Docker Image 빌드 시 DEBIAN_FRONTEND 환경변수의 값을 noninteractive로 설정
  • RUN apt upgrade -y : apt upgrade -y 명령어를 실행
  • ENV TZ=Asia/Seoul : Docker Image 빌드 및 Docker Container 실행 시 TZ 환경변수의 값을 Asia/Seoul로 설정

FROM <image name> 명령어는 현재 빌드하고자 하는 Docker Image의 Base Image를 지정하는 데 사용한다.

ARG <command>ENV <command> 명령어는 둘 다 환경변수를 설정한다는 점은 똑같지만, ARG <command> 명령어는 Docker Image 빌드 시에만 적용되고, ENV <command> 명령어는 Docker Image 빌드 시뿐만 아니라 Docker Container 실행 시에도 적용된다는 점이 다르다.

RUN <command> 명령어는 지정한 명령어를 실행하는 데 사용한다.


Docker Image 빌드


다음 명령어를 통해 작성한 Dockerfile로 Docker Image를 빌드할 수 있다.

1
docker build -t custom-image .

전달한 옵션은 다음과 같다.

  • -t custom-image : custom-image라는 이름으로 Docker Image를 빌드
  • . : Dockerfile이 위치한 경로

Image

Image

빌드가 완료되면 다음 명령어로 Docker Image를 확인해볼 수 있다.

1
docker images

Image

방금 빌드했던 custom-image Docker Image와 Base로 지정했던 ubuntu Docker Image가 보인다.


Docker Container 실행


빌드한 Docker Image를 Docker Container로 실행할 수 있다.

1
docker run --name kst-container -i -t custom-image

명령어의 내용은 다음과 같다.

  • --name kst-container : 컨테이너의 이름 지정
  • -i : interactive 모드
  • -t : 가상 tty로 연결

Image

custom-image를 이용한 kst-container가 실행되었다.


현재 시간을 확인해보자.

1
date

Image

시간대가 KST로 설정되어 있음을 알 수 있다.

This post is licensed under CC BY 4.0 by the author.

© sirius-mhlee. Some rights reserved.

Using the Chirpy theme for Jekyll.