Docker

lionloopy·2023년 6월 5일

오늘의 공부

목록 보기
12/22
post-thumbnail

Docker

Docker : 개발 시 쉽고 빠르게 구축, 공유 및 실행할 수 있는 소프트웨어로, 컨테이너 기반의 기술이다. 쉽게 말하면 컨테이너에 기술을 넣으면 모든 기술들의 실행 방법이 다 같아진다. Docker만 설치되어 있다면, OS와 CPU에 상관없이 컨테이너를 사용할 수 있다. spring, nodejs 등등에 관련 없이 컨테이너에만 넣으면 모두 동일하게 실행이 가능하다.

  • 컨테이너 오케스트레이션
    : 여러대의 서버와 여러개의 서비스를 관리하여 자동화하는 기술이다. 소분류로는 스케줄링, 디스커버리, 모니터링, 로깅 등등이 있다.
    스케줄링 : 컨테이너를 스케줄링해서 가상 머신에 배치하는 역할을 한다. 배치 시 컨테이너 스택에 매칭되는 가상 머신을 자동으로 선택하고, 문제 발생 시 자동으로 다시 배치한다.
    서비스 디스커버리 : 수많은 컨테이너들이 생성과 종료를 반복할 때, 매번 IP, Port 정보를 알 수 없기 때문에 이를 자동으로 매칭한다.
  • Docker Swarm
    : 도커에서 만든 컨테이너 오케스트레이션 tool로 기능이 단순하여 쉽게 사용할 수 있다. 대용량 분산 환경과 같은 복잡한 시스템에서는 적합하지 않아서 kubernetes를 많이 사용한다.
  • Kubernetes
    : 구글에서 만든 컨테이너 오케스트레이션 tool로 대규모 분산 환경에 최적화된 기능을 제공한다. 넓은 생태계가 구축이 되어 있어 컨테이너 오케스트레이션 표준으로 볼 수 있다.

기초 개념

: 도커는 Immutable Infrastructure 패러다임을 실현하는 기술로,
서버 구축후에는변경이 불가능하다. 따라서 변경이 필요하다면 삭제 후 다시 구축을 한다.

  • Dockerfile 빌드 -> DockerImage가 생김 -> DockerImage를 push -> 레포지토리로 들어감-> 필요한 서버에서 pull 받아 실행

image : 프로그램이라고 생각하면 된다. 읽기만 가능하고 immutable하다. (read-only)
container : 프로세스라고 생각하면 된다. 쓰기가 가능하며 휘발성으로 메모리에 상주한다.
dockerfile : instruction set으로 도커 이미지를 만드는 설명서라고 생각하면 된다.
registry : 깃헙과 같은 이미지 저장소이고, 대표적인 public registry로 dockerhub가 있다.

profile
기록은 담백하게, 성장은 빠르게! 🐘

0개의 댓글