본문 바로가기
DevOps/Docker

[Docker] : 도커 이미지 생성하기

by 오주현 2022. 2. 24.
반응형

아무것도 존재하지 않는 이미지(우분투, CentOS)로 컨테이너 생성 후 애플리케이션을 위한 환경을 설치하고 소스코드 등을 복사해 동작을 확인한다. 그리고 컨테이너를 이미지로 커밋한다.

 

보통은 개발한 애플리케이션을 컨테이너화 할 떄 위와 같은 방법을 떠올린다.

 

하지만, 이런 방법에는 장,단점이 있다. 장점으로는 동작을 확인하고 이미지화 하는 것이기 때문에 동작이 보장이 된다는 점이고 단점으로는 일일이 패키지를 수작업으로 설치해 주거나 애플리케이션이 동작하는 환경을 구성해 줘야 한다는 점이다.

 

도커는 이런 과정을 쉽게 기록하고 수행할 수 있는 build 명령어를 제공한다. 컨테이너에 설치해야 하는 패키지, 소스코드, 명령어, 셸 스크립트를 하나의 파일에 기록해두면 도커가 이 파일을 읽어 컨테이너에서 작업을 수행한 뒤 이미지로 만들어 낸다.

 

이런 작업을 기록한 파일의 이름을 Dockerfile이라고 한다. 도커는 Dockerfile을 읽어 이미지를 생성하는 것이다.

Dockerfile을 통해 컨테이너 생성, 이미지 커밋하는 수고를 덜 수 있고 깃과 같은 개발 도구를 통해 애플리케이션의 빌드 및 배포를 자동화 할 수 있다.

 

Dockerfile은 개발 외 여러 목적으로 사용이 가능하다. 예를 들면 이미지 자체를 배포하는 대신 이미지를 생성하는 방법을 기록해 놓은 Dockerfile을 배포할 수도 있다.(배포된 이미지를 신뢰할 수 없을 때 직접 하는 게 좋다.) 보통 도커 허브에 올려져 있는 대부분의 이미지는 Dockerfile을 함께 제공한다.

 

Dockerfile을 작성하는 게 장기적인 시점에서 좋다. 이미지를 생성하는 방법을 기록할 뿐만 아니라 이미지의 빌드, 배포 측면에서도 매우 유리하다. 애플리케이션에 필요한 패키지 설치 등을 명확히 할 수 있고, 이미지 생성을 자동화 할 수 있고, 쉽게 배포할 수 있기 때문이다.

 


📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.

반응형

댓글