내가 한 노력들

[ Docker ] Dockerfile을 이용한 image 생성하기 본문

IT 공부/Docker

[ Docker ] Dockerfile을 이용한 image 생성하기

JONGI-N CHOI 2021. 12. 30. 12:00

docker-compose를 이용해서, 자동적으로 컨테이너를 실행하듯, Dockerfile을 이용해서 image를 자동적으로 생성할 수 있습니다. 

 

image는 기본 베이스가 있고, 여러가지 환경을 추가할 수 있습니다. 

 

예를 들어서, ubuntu가 기본 os 환경에 git을 설치하고 싶은 경우에는 ??

 

ubuntu 컨테이너 생성 / 실행

docker run -it ubuntu bash

 

git 확인 

# git

그러면, 위와같이 commend not found 메세지가 출력됩니다. 

그 이유는 아직 ubuntu 환경에 git이 설치되어있지 않기 때문입니다. 

 

git 설치

# apt-get update
# apt-get install -y git

apt-get은 리눅스 환경에서 패키지 설치를 하기위한 매니저입니다. 

 

다시 git 확인 

# git

 

image 생성

docker commit [옵션] <컨테이너이름> <image이름:태크>

방금 ubuntu 환경에서 git을 설치한 컨테이너를 commit을 이용해서 image로 만듭니다. 

 

image 확인 

docker images

ubuntu:git 이라는 새로운 image가 만들어진 것을 볼 수 있습니다. 

 

그러면, 이 image를 기반으로 다시 한번 컨테이너를 실행해보겠습니다, 

 

docker run -it ubuntu:git bash

이번에는 컨테이너를 실행하자 마자, git명령어를 입력해도 동작을 하는 것을 볼 수 있습니다.

그 이유는 위에서 git을 설치했던 컨테이너를 image로 만들어서 그것을 기반으로 실행했기 때문입니다. 

 

이렇듯 docker는 image를 생성하고 실행함으로써 쉽게 관리할 수 있습니다. 


Dockerfile을 이용해 image 생성하기 

 

위에서 했던 작업을 이번엔 Dockerfile을 이용해서 자동화로 image를 생성해보겠습니다. 

 

새로운 디렉토리 생성

# mkdir docker-image
# cd docker-image

 

Dockerfile

FROM ubuntu:latest

RUN apt-get update
RUN apt-get install -y git

현재 디렉토리 위치에 위의 파일을 새로 생성합니다. 

 

FROM ubuntu:latest : ubuntu:latest 이미지를 기반으로 실행

RUN apt-get update : 명렁어 apt-get update 실행 

RUN apt-get install -y git : 명령어 apt-get install -y git 실행 

 

docker build -t 리파지토리:태그 .

docker build 명령어를 실행하면, 자동적으로 Dockerfile 파일을 찾아서 실행합니다. 

 

-t : 옵션은 새로 생성할 이미지 이름을 지정

. : Dockerfile의 위치를 경로를 지정

(  --file(또는 -f) 옵션을 사용해서 파일 이름을 지정할 수 있습니다. ) 

 

 

docker images 명령어를 통해 확인해보면, 위와같이 새로 image가 생성된 것을 확인할 수 있습니다.


 

이렇듯, 위에서는 수동으로 ubuntu 컨테이너를 실행시키고, git 설치하는 작업을 Dockerfile을 이용해서 자동화한 것입니다, 

 

이 과정으로 얻을 수 있는 것은 명령어를 실행하기 위해 일일히 기다리지 않아도 자동으로 처리 시킬 수 있다는 점과

파일 형태로 저장할 수 있기 때문에, image가 어떤 과정으로, 어떤 구성으로 만들어졌는지를 확인할 수 있습니다.