도커 개요

고재석·2021년 5월 23일
0
post-custom-banner

출처 : https://docs.docker.com/

도커란?

도커란 어플리케이션의 개발, 실행, 배포를 위한 개방형 플랫폼이다. 도커는 나의 어플리케이션에 독립적인 환경을 제공하여 플랫폼 독립적으로 어플리케이션을 개발할 수 있게 도와준다.

도커를 사용하는 이유

그렇다면 도커를 사용해야하는 이유는 무엇일까? 우선 가상 머신과 비교해보자.

가상 머신은 도커에 비해 더 강력하게 격리된다. 가상화된 하드웨어 위에 각 머신마다 OS가 독립적으로 올라간다.

그리고 도커는 하드웨어 위에 올라가 있는 하나의 OS 위에서 도커 엔진이 가상화된 컨테이너를 구분하여 격리한다.

따라서 컨테이너가 가상머신보다 더 공간을 적게 차지하고, 더 빠르다. 왜냐하면 OS 자체를 가상화하는데 사용되는 저장공간이 굉장히 크기 때문이고, 그만큼 커널에서 처리해야하는 부분이 줄기 때문이다.

하지만 도커를 사용하는 가장 큰 이유는 지속적 통합/배포에 용이하기 때문이다. 개발자는 로컬에서 작업한 내용을 다른 동료와 환경에 구애받지 않고 작업물을 쉽게 공유할 수 있다. 공유한 내용을 바로 테스트하고 push만 한다면 간단하게 수정사항을 배포할 수 있다.

이미지와 컨테이너

이미지

도커 이미지는 어플리케이션과 실행 환경을 묶어놓은 도커 오브젝트이다. 이미지는 내가 만들 수도, 다른 사람이 잘 만들어 놓은 것을 가져다 쓸 수도 있다. 내가 이미지를 만들기 위해서는 Dockerfile이라고 하는 명세 파일을 만들어야 한다. 이 파일이 있는 경로에서 build한다면 내가 원하는 어플리케이션과 실행 환경을 가지고 있는 이미지를 만들어 낼 수 있다.

컨테이너

이렇게 만든 이미지를 실행하는 환경은 컨테이너이다. 컨테이너는 도커 엔진이 가상으로 격리해놓은 환경으로 개발자가 컨테이너의 라이프 사이클을 관리할 수 있다. 호스트 환경과 격리되어 있기 때문에 호스트 환경 대신 컨테이너 환경에서 필요한 라이브러리나 OS를 pull 받아서 독립적으로 실행된다.

profile
명확하게 말하고, 꼼꼼하게 개발하자
post-custom-banner

0개의 댓글