MEMO

도커란 무엇인가 :: 도커 이미지 와 도커 컨테이너 개념 본문

Docker

도커란 무엇인가 :: 도커 이미지 와 도커 컨테이너 개념

by_dev 2019. 11. 13. 16:05

 

도커 (Docker)

 

컨테이너형 가상화를 구현하기 위한 상주 애플리케이션과 이를 관리하는 명령형 도구로 구성

 

예를들어, 웹 애플리케이션을 운영하기 위해서는 테스트 서버와 동일한 운영 환경을 만들어야 하며 이 운영 환경을 만들기 위해서는 테스트 서버 환경에 대한 문서를 참고하고 설치하는 작업이 필요하다. 문서를 참고해서 한번에 환경 셋팅이 완료된다면 너~~ 무 좋겠지만 운영 환경 셋팅에 대한 비용이 만만치 않은데, 이러한 여러 환경들을 사진으로 찰칵 찍어서 저장해두면 해당 사진을 운영 서버에서 내려받아서 사용하면 테스트 서버와 동일한 상용 서버가 만들어 진다. 이러한 역할을 해주는것이 바로 도커 이다.

 

도커 사용 이유로는 우선 환경 차이로 인한 문제가 방지 될 수 있다. 도커 이미지로 서버 환경 셋팅에 대한 것을 코드로 관리할 수 있고 해당 코드를 다른 호스트에서 바로 실행시킬 수 있기 때문에 애플리케이션 환경 구축에 대한 통일성을 유지하는데 용이하다.

또한, 배포작업에 있어서도 아주 편리하게 해준다. 이는 도커가 여러 애플리케이션을 한번에 실행해서 하나의 애플리케이션을 만들어 배포해야 하는 경우에 빛을 바라게 된다. 도커 컨테이너를 각각 실행해 의존관계를 정의하는 도커 컴포즈(Docker compose) 기능을 사용하면 보다 쉽게 할 수 있다.

 

도커 이미지 (Docker image)

도커 컨테이너를 구성하는 파일 시스템과 실행한 애플리케이션 설정을 하나로 합친 것으로, 컨테이너를 생성하는 템플릿 역할

 

도커 이미지는 도커 컨테이너를 생성하기 위해 반드시 필요한 파일로 따로 확장자가 있는 것이 아니라 파일명을 Dockerfile 로 저장해 주면 docker 가 호출한 디렉토리 내 Dockerfile 명으로 저장되어 있는 파일을 찾아 컨테이너로 생성해 준다. 

 

Dockerfile 작성의 경우 https://docs.docker.com/develop/develop-images/dockerfile_best-practices/해당 URL 에서 자세한 문법을 알 수 있다. Dockerfile 에서 사용되는 기본적인 명령어는 FROM, RUN, COPY, CMD 정도로 이는 아주 기본적인 명령어에 해당한다.

 

dockerfile
docker image 생성 중

도커 컨테이너 (Docker container)

도커 이미지를 기반으로 생성되며, 파일 시스템과 애플리케이션이 구체화돼 실행되는 상태를 말한다. 즉, Dockerfile 을 실행시키면 도커 컨테이너가 되는것이다.

 

도커 컨테이너의 생명주기는 실행 중과 정지 상태로 나뉘며, 완전히 삭제시키는것을 파기 한다고 한다. 위에서 생성한 "Hello XHIFT" 를 출력하는 간단한 java 코드를 도커 이미지를 이용해 실행해 보았다. 

 

 

 

 

 

Comments