docker

Docker

리눅스 application들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈소스 프로젝트

container:

가상화의 한 종류 (기존 리눅스 커널을 공유)

  • 리눅스의 사용자 공간을 논리적으로 나누는 기술

  • 리눅스의 namespace

    • 각 프로세스가 파일 시스템, 네트워크, 유저, 호스트네임 등을 독립적으로 부여
  • 리눅스 컨트롤 그룹 (cgroups)

    • 프로세스가 소비할 수 있는 리소스를 제한 할 수 있음
  • 위 기술들을 사용해서 application을 격리

image

컨테이너 실행에 필요한 모든 파일, 설정 값

  • 모든 의존성을 포함하고 있기에, 바로 컨테이너로 만들어서 실행 가능함 (MSA와 궁합이 잘 맞음)

  • Docker hub, ghcr 등의 Registry에 저장하여 이미지를 쉽게 push, pull 가능