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 |