본문 바로가기

Docker

[Docker] 도커란?

Docker 

도커는 애플리케이션의 실행에 필요한 환경을 하나의 이미지로 만들어, 해당 이미지를 사용하여 다양환 환경에서 독자적인 앱 실행 환경을 구축하고 운영하기 위한 오픈 소스 플랫폼이며 컨테이너의 가장 대표적인 구현체이다.


* 기업들은 어떻게 서비스를 효율적으로 운영 / 배포할 것인가?

  • 초기
    • 컴퓨터 + OS -> 애플리케이션을 구동하기 위해 필요한 라이브러리, 프레임워크를 OS에 설치해서 운영/배포

  • 가상화 : 비용, 컴퓨팅 자원 효율성 증가 
    • 다수의 애플리케이션은 필요로 하는 라이브러리, 프레임워크가 다를 수 있다는 문제점을 해결
    • 다수의 애플리케이션을 각 각의 가상화 머신에서 격리시켜 운영/배포
    • Virtual Machine
      - Host OS 위에 Hypervisor -> 각 Virtual Machine에 Geust OS 동작 -> Cpu, RAM, HDD... (Emulating)
      - 각 각의 App이 격리된 환경에서 실행된다.
      - Emulating으로 인해 성능의 효율성이 떨어진다.
      - 자원의 오버헤드가 크다. -> 가상머신을 실행하기 위한 자원이 소모된다.

  • 컨테이너 : 가상화보다 더 많은 효율성 증가
    • OS 위에 Container Engine 동작
    • HOST OS 입장에서 Container는 Process와 동일시 한다.
    • 각 컨테이너는 동일한 Host OS 사용 -> Guest OS 사용 X
    • chroot, namespace를 통한 Process Id, Network 분리가 가능하다.

  • Container Orchestration System
    • 여러 서버로 구성된 클러스터 환경에서 컨테이너를 관리하는 기술 <-> Container Engine은 하나의 서버위에서 하나의 컨테이너를 관리하는 기술

 

'Docker' 카테고리의 다른 글

[Docker] docker-compose  (0) 2022.11.14
[Docker] Dockerfile  (0) 2022.11.11
[Docker] Docker 기본  (0) 2022.11.10