CLOUD/Docker

도커란 무엇인가

지수쓰 2021. 2. 23. 17:27
반응형

초보를 위한 도커 안내서 정리

 

링크 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

따라쓰면서 익히기~!

도커란?

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 다양한 프로그램, 실행환경을 컨테이너로 추상화 하고 동일한 인터페이스를 제공

=> 프로그램의 배포 및 관리를 단순하게 해줌

 

도커에서 추상화되는 것 : 백엔드 프로그램, DB서버, 메세지 큐 등 프로그램 어떤 것이든

실행 환경 : 조립 PC, AWS, Azure, GCP

 

컨테이너

  • 격리된 공간에서 프로세스가 동작하는 기술
  • 하나의 서버에 여러개 컨테이너를 실행하면 서로 영향 없이 독립적으로 실행되어 가벼운 VM과 같은 효과

 

 

  • 컨테이너 가상화 방식  vs 기존 방식 차이

기존 기존-개선방안컨테이너

OS 가상화 ( 호스트 OS 위에 게스트 OS)

  • 장점 : 여러가지 OS 가상화 가능
  • 단점 : 무겁고 느림 , 운영 환경에서 사용 어려움(추가적인 OS를 설치한다는 것에서 성능 문제)

1. CPU 가상화 - KVM(Kernel-based vm)

2. 반가상화 - Xen

=> 전체 OS를 가상화 하지 않아 성능 향상

=> OpenStack, AWS 등 클라우드 서비스 가상 컴퓨팅 기술 기반

프로세스를 격리 

=> CPU나 메모리를 딱 프로세스가 필요한 만큼만 추가로 사용하므로 성능 손실 X 

*기본 모드는 Bridge(약간의 성능 손실)

*네트워크 성능이 중요한 경우 --net=host옵션

 

이미지

  • 컨테이너 실행에 필요한 파일과 설정값 등을 모~~~~~~~두 포함하고 있는 것

* 컨테이너 = 이미지를 실행한 상태  

* 컨테이너가 변경,삭제되어도 변하지않음 (Immutable), 여러 컨테이너 가지고 생성 가능

 

  • Docker hub, Docker Registry에 저장해 관리 가능.

 

레이어 저장방식

  1. 도커 이미지는 컨테이너 실행에 필요한 모든 정보를 담고 있어 용량이 큼(수백메가)

  이미지에 뭔가 추가될 때 마다 다시 다운받는 것 매우 비효율적

     → 레이어 개념 사용!

2. 이미지는 여러개의 읽기 전용 레이어로 구성되어 파일이 추가,수정될때 새로운 레이어가 생성됨.

3. 컨테이너 생성시에도 기존의 이미지 레이어 위에 읽기/쓰기 레이어 추가.

  컨테이너 실행 중 생성된 파일이나 변경 내용 읽기/쓰기 레이어에 저장됨. 여러개의 컨테이너 생성해도 최소한의 용량만 사용

 

이미지 경로