Docker  ?

도커는 '데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어' 입니다.

 

데이터나 프로그램을 독립된 환경에 격리해야 하는 이유는 무엇일까요?

  • 대부분의 프로그램은 단독으로 동작하는 것이 아니라 어떤 실행 환경이나, 다른 프로그램을 이용해 동작합니다.
    ( PHP로 작성된 프로그램은 PHP 실행 환경이 필요하고, 파이썬으로 작성된 프로그램은 파이썬 실행 환경이 필요함 )
  • 소프트웨어 역시 여러 프로그램으로 구성될 수 있고, 다른 프로그램과 정보를 공유하기도 합니다.
    ( 워드프레스를 실행하려면 MySQL DB가 필요하고,서로 다른 시스템 A와 B가 같은 프로그램 C와 연동될 수 있음 )
  • 위의 예시와 같이 프로그램 간 공유로 인해 많은 에러가 발생할 수 있습니다.
    ( 프로그램 공유하는 시스템 간 요구하는 버전의 불일치 등 )
  • 도커는 컨테이너 기술을 활용해 한 서버에서 실행되는 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공합니다.

 

컨테이너 & 도커 엔진 & 이미지

  • 컨테이너란 시스템에 필요한 실행환경, 데이터 또는 프로그램을 격리시키는 단위입니다.
  • 도커 컨테이너는 이미지의 인스턴스로 실행 중인 어플리케이션을 뜻합니다. 
  • 도커는 이러한 컨테이너를 다루는 기능을 제공하는 소프트웨어이고, 도커를 사용하기 위해선 도커의 본체인 도커 엔진을 설치해야 합니다.
  • 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있습니다.
  • 이미지는 컨테이너를 만들기 위해 컨테이너를 위해 프로그램에 필요한 실행 환경이나 데이터 등이 패키징 되어있는 파일입니다. 

도커의 제약 사항

  • 리눅스 운영체제가 필요하다.
  • 컨테이너에서 동작시킬 프로그램도 리눅스용 프로그램이다. 

 

'Docker' 카테고리의 다른 글

Docker & Kubernetes [ 2 ]  (2) 2023.12.26
12月 Wanted Free Onboarding BE Challenge [ 1. 사전 과제 ]  (1) 2023.12.04

+ Recent posts