마짱짱의 지식창고

Container? Docker? 본문

Cloud/Docker

Container? Docker?

마짱짱 2020. 7. 13. 11:04
반응형

컨테이너 가상화 란?

  • 호스트 운영체제에서 논리적인 거역을 만들어 서로 독립적인 어플리케이션을 실행하는 기술
  • 이 논리적인 구역을 컨테이너라 하며, 여기에 필요한 어플리케이션과 필요한 라이브러리 추가할 수있다.
  • 주로 커널 기능을 사용

리눅스 컨테이너 란?

  • 컨테이너 가상화 기술을 사용
  • 애플리케이션이나 이에 필요한 라이브러리 및 설정파일 등이 포함
  • 가상머신에 비교하면 계층이 없고 커널이 별도로 존재하지 않기 떄문에 가볍고 실행속도가 빠르다.
    • Cgroup
      • Control Group 의 약자
      • 프로세스 또는 쓰레드를 그룹화 하여 관리하는 기능
      • 리소스(CPU, 메모리, 디스크입출력 등)의 사용을 제한
      • 호스트의 리소스를 공유하여 사용
      • 같은 호스트에서 동작하는 서로 다른 컨테이너에 영향을 주지 않도록 막아준다.
    • Namespace
      • 이 공간에 다수의 오브젝트를 격리 할 수 있다.
      • 동일한 호스트에서 동일한 PID를 가질수는 없지만 서로다른 namepace 에선 동일한 PID를 가질 수 있다.

출처 : https://allpartner.tistory.com/11

Docker ?

  • Go 언어로 개발한 오픈소스 플랫폼
  • 리눅스 컨테이너를 쉽게 관리하고 실행할 수 있다.
  • 개발환경, 테스트환경, 서비스환경을 모두 동일하게 사용할 수 있어 이식성이 좋다.

장점

1. 서버를 코드 형태로 정의
2. 이식성
3. 상호운용성

도커의 구조

1. 이미지
도커로 리눅스 컨테이너를 생성하려면  미리 제작된 이미지가 있어야한다.
이미지는 여러 개의 레이어로 이루어져 있으며 각 레이어는 Read Only 상태로 사용된다.
만약 이미지로 컨테이너를 실행하여 파일을 생성하거나 삭제한다면 새로운 레이어를 만들어 내용을 저장한다.
이때 사용하는 방식이 COW(Copy on Write)와 유사하다.

2. 저장소
컨테이너를 생성하려면 이미지가 있어야하고. 이미지는 호스트가 아닌 외부에 저장되어 공유 할 수 있어야 한다.
범위에 따라 프라이빗이미지, 퍼블리이미지로 나뉜다.

3. 컨테이너
이미지의 실행형태
이미지가 메모리에 올라가면 컨테이너
컨테이너가 디스크에 저장되면 이미지
하나의 컨테이너에는 하나의 어플리케이션만 실행되는 것만 권장한다.
추가로 실행 할 순 있다. 

도커의 기능

1. 이미지 생성
2. 이미지 공유
3. 컨테이너 생성
반응형

'Cloud > Docker' 카테고리의 다른 글

Docker 설치 및 root 아닌 사용자 명령어 사용  (0) 2024.05.08
도커 네트워크(Dokcer Network)  (0) 2020.07.14
도커 볼륨(Dokcer Volume)  (0) 2020.07.14
docker 명령어  (0) 2020.07.13
Docker 설치  (0) 2020.07.13