Docker

[Docker] Docker

SangRok Jung 2023. 1. 26. 22:24
반응형

 

Docker


애플리케이션 실행 시 필요한 환경을 하나의 이미지로 모아두고, 그 이미지를 사용해서 다양한 환경 에서 애플리케이션 실행 환경을 구축 및 운영하기 위한 오픈소스 플랫폼

 

 

 

Docker의 기능

(1) Build : Docker 이미지를 만드는 기능

  • 애플리케이션 실행에 필요한 프로그램 본체, 라이브러리, 미들웨어, os, 네트워크 설정 등을 하나로 모아 Docker 이미지 생성

(2) Ship : Docker 이미지를 공유하는 기능

  • Docker 이미지는 Docker 레지스트리(Docker Hub)에서 공유 가능. https://hub docker.com/

(3) Run : Docker 이미지를 작동시키는 기능

  • Docker는 Linux상에서 컨테이너 단위로 서버 기능을 작동시킴.
  • Docker가 설치된 환경에서 Docker 이미지를 가지고 어디서든 컨테이너를 작동 가능.

 

https://medium.com/@shakungrover01/what-is-docker-its-uses-and-purpose-b13981698e00

 

 

Docker 컴포넌트

  1. Docker Engine(Docker의 핵심 기능)
  2. Docker Registry(이미지 공개 및 공유)
  3. Docker Compose(컨테이너 일원 관리)
  4. Docker Machine(Docker 실행 환경 구축)
  5. Docker Swarm(클러스터 관리)

 

 

 

컨테이너 구획 장치(namespace)

  1. PID namespace: PID와 프로세스를 격리
  2. Network namespace: 네트워크 디바이스, IP 주소, 포트 번호, 라우팅 테이블, 필터링 테이블 등과 같은 네트워 크 리소스를 격리된 namespace마다 독립적으로 가질 수 있음.
  3. UD namespace: UD(사용자 ID), GID(그룹 ID)를 namespace별로 독립적으로 가질 수 있음.
  4. MOUNT namespace: 마운트 조작을 하면 namespace 안에 격리된 파일 시스템 트리 생성.
  5. UTS namespace: namespace별로 호스트명이나 도메인명을 독자적으로 가질 수 있음.
  6. IPC namespace: 프로세스 간의 통신(PC) 오브젝트를 namespace별로 독립적으로 가질 수 있음.

 

 

 

 

릴리스 관리 장치(cgroups)

  • 프로세스와 스레드 그룹화, 그 그룹 안에 존재하는 프로세스와 스레드 관리 기능 . 계층 구조 사용 프로세스를 그룹화하여 관리 가능
  • 사용자 애플리케이션과 서버와 같은 데몬 프로세스를 나눠, 각각의 그룹에 CPU 사용량을 할당할 수 있음

https://bikramat.medium.com/namespace-vs-cgroup-60c832c6b8c8

 

 

 

 

 

네트워크 구성(가상 브리지/가상 NIC)

  • uinux는 Docker를 설치하면 서버의 물리 NIC가 dockero이라는 가상 브리지 네트워크로 연결.
  • 가상 NIC는 oSI 참조 모델의 레이어 2인 가상 네트워크 인터페이스로, 페어인 NIC와 터널링 통신을 함.

https://www.edureka.co/blog/docker-networking/

 

반응형

'Docker' 카테고리의 다른 글

[Docker] Volume  (0) 2023.01.26