Docker 시작하기 #01

Seok·2020년 12월 6일
1

Docker

목록 보기
1/7
post-thumbnail

1. 도커

  • 도커란 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구 이며 컨테이너 기반의 오픈소스 가상화 플랫폼이며, 생태계이다.

2. 컨테이너

  • 코드와 모든 종속성을 패키징하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위이다.

  • 다양한 프로그램 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다.

3. 컨테이너 이미지

  • 런타임에 컨테이너가 되고 도커 컨테이너의 경우 도커 엔진에서 실행될 때 이미지가 컨테이너가 된다.
  • 리눅스와 윈도우 기반 어플리케이션 모두에서 사용할 수 있는 컨테이너화 된 소프트웨어는 인프라에 관계없이 항상 동일하게 실행된다.
  • 컨테이너는 소프트웨어를 환경으로부터 격리시키고 개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록 보장한다.

4. 가상머신과 도커

docker

  • 도커 컨테이너와 가상 머신은 기본 하드웨어에서 격리된 환경 내에 어플리케이션을 배치하는 방법이다.

  • 가상머신과 도커 컨테이너와는 큰 차이가 있다. 가상머신은 우측 그림에서 처럼 각 어플리케이션마다 Gest OS가 포함되어있다. 그리고 이는 성능문제에 영향을 준다.

  • 반면에 도커는 Host OS를 사용하며 각 어플레이케이션을 컨테이너 단위로 관리한다. 그리고 각 컨테이너의 OS 자원은 서로 공유되어 성능의 손실이 거의 발생하지 않는다.

  • 어플리케이션을 실행할 때에 컨테이너 방식은 호스트 OS 위에 어플리케이션의 실행 패키지인 이미지를 배포하기만 하면되는데, VM는 어플리케이션을 실행 하기 위해서 VM을 띄우고 자원을 할당한 다음 게스트 OS를 부팅하여 어플리케이션을 실행 해야 해서 훨씬 복잡하고 무겁게 실행을 해야한다.

5. 도커 컨테이너의 격리

  • 리눅스에서 쓰이는 Cgroup과 네임스페이스의 기능을 이용한다.

  • Cgroup : CPU, Memory, 네트워크, I/O 등의 프로세스 그룹의 시스템 리소스 사용량을 관리한다. 어떤 어플리케이션의 사용량이 너무 많다면 그 어플리케이션을 Cgroup에 넣어 CPU와 메모리 사용량을 제한 할 수 있다.

  • 네임스페이스 : 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술. 별개의 독립된 공간을 사용하는 것처럼 격리된 환경을 제공하는 경량 프로세스 가상화 기술.

0.참고

docker.com

profile
🦉🦉🦉🦉🦉

0개의 댓글