Dockerfile로 Image 빌드하고 Container 실행하기
Dockerfile을 사용하는 방법을 정리한 글입니다.
이번 글에서는 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을 현재 위치에서 참조)
빌드가 완료되면 다음 명령어로 Docker Image를 확인해볼 수 있다.
1
docker images
방금 빌드했던 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로 연결
custom-image
를 이용한 kst-container
가 실행되었다.
현재 시간을 확인해보자.
1
date
시간대가 KST
로 설정되어 있음을 알 수 있다.