도커 A to Z - 들어가기

김상운(개발둥이)·2022년 9월 17일
0

도커 A to Z

목록 보기
1/5
post-thumbnail

도커?

도커는 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼입니다. 가상화란 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간 위에 가상의 머신을 만드는 기술이고, 컨테이너란 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술을 뜻합니다.

컨테이너를 관리하고 생성하는 컨테이너 기술

컨테이너?

  • 표준화된 소프트웨어의 단위
  • 코드를 실행함에 있어 코드와 의존성의 패키지.
  • 같은 컨테이너는 어디에서, 누구에게 의해서 실행되든 항상 같은 어플리케이션이고 같은 행위를 한다.

따라서 도커는 이러한 컨테이너를 관리하고 생성하는걸 간단화한다.

그래서 왜 컨테이너를 사용해?

  • 같은 환경에서의 개발
    • 우리는 같은 환경에서 빌드하고 테스트하고 싶어한다.
  • 팀 또는 회사에서 같은 개발환경이 필요하다.
    • 모든 팀원들은 같은 프로젝트를 진행하는데 있어 같은 환경에서 개발하여야 하기 때문에
  • 여러 프로젝트를 사용하는데 있어 기술과 버전의 충돌
    • 여러 프로젝트를 진행하는데 있어 프로젝트 A와 프로젝트 B 의 기술과 버전의 충돌이 있어서

우리는 독립적이고 표준화된 어플리케이션 패키지를 같은 환경에서 개발하기 위해서 이다.

가상 머신을 사용하면 되자나!

위의 그림처럼 OS 에서 가상머신을 사용하여 개발환경을 분리하는 것도 가능하다.

독립된 환경에서 필요로 하는 라이브러리랑 의존성을 원하지만 이를 위해 guest os 가 필요로 하다.. 이는 많은 하드 디스크의 공간을 차지하며 느려질 수 있다.

가상 머신 사용의 장점/단점

장점

  • 분리된 환경
  • 환경에서의 구체적인 설정이 가능하다.
  • 환경설정이 안정적으로 공유 및 재생산 될 수 있기 때문에.

단점

  • 많은 중복과 자원의 낭비
  • 많은 자원을 필요로 하기 때문에 성능이 느려질 수 있다.

도커 vs 가상머신

도커 컨테이너

  • OS 에 끼치는 영향이 작으며 매우 빠르고 작은 용량을 필요로 한다.
  • 재사용과 공유가 가능하다!
  • 모든 machine 이 아닌 어플리케이션과 환경만 캡슐화 한다.

가상 머신

  • OS 에 끼치는 영향이 크며 느리고 많은 용량을 필요로 한다.
  • 재사용과 공유가 가능하지만.. 어렵다.
  • 어플리케이션과 환경이 아닌 전체 machine 을 캡슐화 하여야한다.

가상머신의 많은 공간을 차지하며 무겁다는 단점인 점을 없애면 그것이 도커다!

도커를 사용하면 위의 그림처럼 필요로 하지 않는 guest os 라던가 의존성이 없다. -> 가볍다!

profile
공부한 것을 잊지 않기 위해, 고민했던 흔적을 남겨 성장하기 위해 글을 씁니다.

0개의 댓글