Docker의 동작 원리

Koo·2023년 7월 17일
1

Section01. 도커의 동작 원리

  • OS 위에 도커 엔진이 동작하고, 그 위에서 container가 동작하는 방식
  • 컨테이너에는 OS는 아니지만 "OS 비슷한 무언가"가 들어있다
    • 운영체제는 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할
  • windows나 macOS에서 도커를 사용하기 위해서는 VirtualBox, VMware와 같은 가상 환경 또는 WSL2와 같은 도커 데스크탑을 필요로한다

Section02. 도커 허브와 이미지, 그리고 컨테이너

image - container를 만들기 위한 설계도

  • 반대로, container를 이용해 image를 생성 가능
    • 컨테이너를 개조한 후, 다시 배포할 때 활용 가능

Dockerhub & image


docker image는 도커 허브에서 구할 수 있다.

안전한 컨테이너 고르기

  1. 공식 image를 사용
  • 이미지 선택이 쉽고 보안을 챙길 수 있다
  • 특정 OS 및 버전을 사용해야 하는 경우 주의가 필요
  1. custom image를 만들어 사용
  • 필요한 최소한의 요소가 담긴 이미지에 필요한 소프트웨어를 설치해 custome image 생성
  • OS가 포함된 이미지에 소프트웨어를 넣는 방법

Section03. 도커 컨테이너의 생애주기와 데이터 저장

컨테이너는 '쓰고 버리는' 일회용품

새로운 소프트웨어 버전이 나오면 컨테이너의 버전을 업데이트하는 것이 아닌 새로운 컨테이너로 갈아타는 방법을 사용

  • 생애주기
    • Create > Start > Stop > Remove
  • Host computer를 마운트하여 생성된 데이터는 저장하고 컨테이너는 제거하는 방법을 사용
  • Host computer에 데이터가 저장되므로 다른 컨테이너에서도 쉽게 접근이 가능하다

Section04. 도커의 장점과 단점

환경의 격리

  • 독립된 환경 - 여러 개의 같은 애플리케이션 띄우기 가능, 쉬운 교체\cdot수정
  • 이미지 생성 가능 - 환경 이동과 개발환경 구축이 쉽다
  • 컨테이너에 커널 포함x - 커널이 포함되지 않아 가볍고, 원하는 배포판을 사용 가능

장점

  • 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있다
  • 서버 관리가 용이하다
  • 전문가가 아니라도 쉽게 사용 가능하다

단점

  • 리눅스용 프로그램만 지원
  • Host computer에 문제가 생기면 모든 container에 문제가 발생
  • 하나의 container를 사용하는 경우, 효용이 없음

용도

  • 모든 팀원에게 동일한 개발환경 제공 가능
  • 새로운 버전이나 변경된 환경에 대한 테스트 가능
  • 동일한 서버가 여러 대 필요한 경우 반복 작업을 없애줌
profile
스터디를 해보자

2개의 댓글

comment-user-thumbnail
2023년 7월 17일

잘봤습니다. 좋은 글 감사합니다.

답글 달기
comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기