Home 도커(Docker)는 무엇인가?
Post
Cancel

도커(Docker)는 무엇인가?

정말 오랜만의 포스팅입니다. 그래도 깃 블로그를 만들어두면 뭔가 꾸준히 글을 쓰면서 공부를 하지 않을까했는데 집에오니 배는 고프고 쉬고 싶고해서 지난 한달동안은 신입연수다 뭐다 하면서 스스로를 합리화하고 놀았던 기억밖에 없네요 다음달이면 벌써 지금 다니는 직장도 수습이 끝나가는데 매일마다는 아니더라도 꾸준히 글을 쓰면서 스스로 학습하는 사람이 되어야 겠습니다.

도커 이미지

그래서 이번에 살펴볼 것은 바로 도커(Docker)입니다.

대학교 공부를 하면서 데이터분석-데이터엔지니어링-백엔드이렇게 묶어서 의식의 흐름대로 공부를 하다보니 자연스럽게 클라우드, 쿠버네티스 도커 등등으로 연결되었지만 현실적으로 취업시장에서 일단 백앤드부터 공부해야 겠다는 생각을 했고 스프링으로 빠져버렸기에 직접 실습을하거나 다뤄보지는 못했지만 되게 친숙했습니다. 그리고 종종 집에서 공부를 할때 알아두면 좋을거 같이서 이번 기회에 다뤄볼려고 합니다. 카테고리는 점점 늘어나는데 실속이 없어지는게 함정인지 모르겠네요

인터넷에서 위키백과나 사람들이 도커를 설명하는 여러가지를 가져와봤습니다.

  • 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.

  • 도커는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.

  • LXC(리눅스 컨테이너스)라는 커널 컨테이너 기술을 이용하여 만든 컨테이너 기술입니다.

  • Linux 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술입니다.

두 가지 공통된 키워드가 보입니다. 가상화, 컨테이너인데 이 두가지 개념을 이해를 하면 다음 단계로 넘어갈 수 있을거 같아 보입니다.

먼저 가상화 입니다.

가상화(Virtual)

일단 가상화가 뭔데요? 라고 하면 컴퓨터는 하드웨어지만 운영체제는 소프트웨어이고 소프트웨어는 하드웨어에 성능이 허락하는한 동시에 띄울 수 있습니다. 다르게 말해서 컴퓨터가 두대 필요한데 물리적인 컴퓨터를 하나 추가하는것도 방법이겠지만 하드웨어적인 컴퓨터는 한대로 그대로 두고 소프트웨어로 두대처럼 작동하게 만들 수 있다는 것입니다.

가상화

그러면 위 그림처럼 여러대의 OS에게 자원을 할당해주는 역할을 수행하는 것을 하이퍼바이저라고 합니다. 하이퍼바이저는 가상 머신(VM)을 생성하고 실행하는 프로세스입니다. 하이퍼바이저는 메모리 및 처리와 같은 단일 호스트 컴퓨터의 리소스를 가상으로 공유하여 호스트 컴퓨터가 여러 게스트 가상 머신을 지원할 수 있도록 합니다.

하이퍼바이저의 단점은 각각의 OS에게 리소스를 따로 할당해주어야 하기 때문에 낭비되는자원이 많았으며 각 OS를 설정하고 할당하는데 많은 번거러움이 있습니다.

도커

그렇다면 OS를 가상화하는대신에 사용하는 어플리케이션을 띄우는 방법이 도커입니다. 하나의 종속된 OS에서 Docker 위에 각각의 컨테이너에 App을 하나씩 띄우게 되면서 OS 커널을 다른 컨테이너와 공유 할 수 있으며, 각 컨테이너는 사용자 공간에서 격리 된 프로세스로 실행됩니다. 컨테이너는 VM보다 적은 공간을 차지하고 적은 리소스를 사용하기때문에 효율이 더 좋아졌습니다.

컨테이너(Container)

위에서 설명한 컨테이너를 한문장으로 다시 설명하면 “앱이 구동되는 환경을 감싸서 실행할 수 있는 격리 기술” 입니다.

OS를 가상화 하는것에서 하나의 OS위에 컨테이너를 올린다는 것까지 왔습니다. 이렇게 했을때 여러가지 장점은 가상OS를 새로 설치했다가 깔았다가 설정하는 것보다는 컨테이너 단위로 갈아치우고 유지보수하는게 훨씬 간단하겠다는 생각부터 듭니다. 이를 전체 어플리케이션에 영향을 끼치지않고 일부분만 수정하는 모듈성을 가지게 되며 계층 및 이미지 버전 제어, 롤백, 신속한 배포등의 장점을 얻을 수 있습니다.

그리고 컨테이너를 잘 이해하기 위해서 이미지, 계층화까지 가야하지만 여기서는 그냥 순수하게 도커가 무엇인지만 살펴보는게 목적이라 여기서 줄이고 바로 윈도우에 설치를 해보겠습니다.

https://docs.docker.com/desktop/install/windows-install/

위 링크에 있는 설치파일을 받아서 실행하면 됩니다. WSL2를 기반으로 동작하는데 WSL2도 같이설치해 줍니다

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.

AWS 라이트세일에 Route 53 도메인 연결하기

윈도우에서 리눅스 설치하기 WSL정리