본문 바로가기
Computer & Program/Docker

[Docker] 00. 도커(Docker)란 무엇인가? 왜 필요한거지?

by TDRemon 2023. 4. 2.
반응형

안녕하세요. TDR입니다.

오늘은 도커란 무엇이며 어떤 장점이 있어서 사용하는지에 대해서 설명해 볼까합니다.

우선 도커(docker)란, Linux기반에서 컨테이너(container)를 다루는 소프트웨어를 말합니다. 그리고 컨테이너란 데이터 또는 프로그램을 별도의 장소에 격리시키는 것입니다. 우리가 해외에 물류를 수입/수출 할 때 큰 배에 수 많은 컨테이너 별로 물건들을 넣는데 이와 동일합니다. (그래서 도커 이미지를 보면 고래 등에 컨테이너가 쌓여있는 이미지)

결국, 도커는 데이터 또는 환경등을 분리한 컨테이너를 컨트롤하는 소프트웨어입니다. 그럼 왜 도커를 써야할까요? 그건 시대가 변하여 예전보다 더 빠른 업데이트, 다양한 기능들을 요구하게 되면서 서버 리소스를 최대한으로 사용하면서도 빠른 개발, 빠른 배포, 고가용성 등 여러가지 요구가 생겨났기 때문입니다.

도커라기보다는 컨테이너의 장점은 몇가지 있는데,

첫째는 소프트웨어를 격리시킬 수 있다는 것입니다. 그로인해 한 서버에 DB를 서로 다른 버젼으로 여러개 설치가 가능하며, 웹서버의 경우 일반적으로 한 서버에 한대 밖에 실행시킬 수 없는데 이를 각기 다른 컨테이너에서 여러개를 실행 시킬 수도 있습니다.

두번째는 컨테이너 자체적으로 실행환경을 다 가지고 있다는 것입니다. 예전에 개발환경에서 개발을 끝낸 코드를 운영 환경에서 실행시키고 배포 할려고 하면, 의존성 문제라던지 버전 차이, 기타 여러가지 미묘한 차이로 실행이 안되고 환경을 구축하는데 애를 먹는 경우가 많았습니다. 하지만 컨터이너는 애초에 실행 환경 자체를 모두 포함한 상태로 이미지(Image)를 만들기 때문에 컨테이너가 동작하는 OS환경과 무관하게 동작이 가능합니다. (네크워크나 포트는 다른 문제)

마지막 세번째는 이식성이 좋다는 것입니다. 두번째 이유와 유사한 면이 있는데, 이미지 자체적으로 모든 실행 조건(환경)을 갖추고 있기 때문에 도커 엔진이 설치만 되어 있다면 어디든 컨테이너를 실행 시킬 수 있습니다. 또한 이미지를 Github와 같은 곳에 올려 놓고 내려받을 수도 있고, 파일로 저장도 가능합니다.

이러한 장점으로 도커가 많이 쓰고 있습니다.

반응형

댓글