[Docker] Docker란

림예·2024년 6월 13일

CS

목록 보기
19/19
post-thumbnail

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다.

OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식



가상머신(VM)과 도커의 차이

가상머신: 각 VM은 독립된 운영체제를 실행하며, 강력한 격리성과 호환성을 제공하지만 자원 소모가 많고 무겁다.

도커: 컨테이너는 호스트 OS의 커널을 공유하며, 가벼움과 빠른 시작, 효율적 관리가 가능하지만 격리성이 상대적으로 낮고 호스트 OS에 의존적이다.

  • 가장 큰 차이는 게스트 OS의 유무

가상머신은 다수의 서로 다른 운영체제를 실행해야 할 때 유용하며, 도커는 동일한 호스트 OS 상에서 여러 애플리케이션을 빠르고 효율적으로 배포하고 실행할 때 유용하다.



Docker Container 생성까지 Lifecycle



도커 이미지 (Docker Image)

애플리케이션을 실행하는 데 필요한 모든 파일과 설정을 포함하는 읽기 전용 템플릿이다. 이는 애플리케이션의 코드, 런타임, 라이브러리, 환경 변수, 설정 파일 등을 포함한다.

특징

  • 불변성: 도커 이미지는 생성된 이후 변경되지 않는다. 모든 변경 사항은 새로운 이미지로 생성된다.
  • 계층 구조: 도커 이미지는 여러 계층으로 구성되며, 각 계층은 이전 계층에 대한 변경 사항을 포함한다. 예를 들어, 베이스 이미지 위에 새로운 애플리케이션 파일을 추가하는 식이다.
  • 재사용성: 이미지의 각 계층은 다른 이미지에서 재사용될 수 있어 저장 공간을 절약하고 빌드 시간을 줄인다.

도커 이미지는 보통 Dockerfile이라는 파일을 기반으로 생성



도커 컨테이너 (Docker Container)

도커 컨테이너는 도커 이미지를 실행한 상태
이미지를 기반으로 생성되며, 독립된 애플리케이션 실행 환경을 제공한다.

특징

  • 격리성: 각 컨테이너는 독립된 환경에서 실행되며, 다른 컨테이너나 호스트 시스템과 격리된다.
  • 가변성: 컨테이너는 실행 중에 변경될 수 있으며, 이러한 변경 사항은 필요시 새로운 이미지로 커밋할 수 있다.
  • 경량성: 컨테이너는 호스트 운영체제의 커널을 공유하므로, 가상머신보다 자원 소모가 적고 빠르게 실행된다.

라이프사이클

  • 생성(Create): 이미지를 기반으로 컨테이너를 생성한다.
  • 시작(Start): 생성된 컨테이너를 실행한다.
  • 정지(Stop): 실행 중인 컨테이너를 정지한다.
  • 재시작(Restart): 정지된 컨테이너를 다시 시작한다.
  • 삭제(Remove): 더 이상 필요 없는 컨테이너를 삭제한다.








profile
Think big 🌏

0개의 댓글