잡다한 공부/Cloud

[도커&쿠버네티스] 1.도커란 무엇인가?

자이구 2023. 11. 20. 13:57

도커데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어라고 할 수 있다. 

개인용 컴퓨터나 서버에는 아파치, PostgreSQL 등 여러 가지 프로그램이 함께 동작한다. 

도커는 이렇데 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 

 

도커는 작게 쪼갠 독립된 창고에 데이터나 프로그램을 두는 것이다. 이 조립형 창고를 컨테이너라고 한다. 

그리고 이 컨테이너를 다루는 기능을 제공하는 소프트웨어가 도커이다. 

도커를 사용하려면 도커 엔진을 설치해야 하며 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있다. 

컨테이너는 여러 개를 만들 수 도 있으며 용량이 허락하는 한 하나의 도커에서 여러 개를 만들 수 있다. 

 

또한 컨테이너를 만들려면 도커 엔진 외에도 컨테이너의 빵틀과도 같은 역활을 할 이미지가 필요하다. 

이미지는 종류가 아주 많고, 담고 있는 소프트웨어의 종류에 따라 다양한 이미지를 사용한다.

 

도커를 사용하는 데는 리눅스 운영체제가 필요하다.

윈도우나 macOS에서도 도커를 구동할 수 있지만, 컨테이너에서 동작시킬 프로그램도 리눅스용 프로그램이고  

내부적으로 리눅스가 사용된다. 

 


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

 

대부분의 프로그램은 프로그램 단독으로 동작하는 것이 아니라 어떤 실행 환경이나 라이브러리, 다른 프로그램을 이용해 동작한다. 또한 다른 프로그램과 특정한 폴더 또는 디렉터리를 공유하거나 같은 경로에 설정 정보를 저장하는 경우도 있다.

 

EX) 시스템 X와 시스템 Y가 모두 어떤 프로그램과 연동되는 상황일 때 

       시스템 X 필요버전 : 3.7  / 시스템 Y 필요버전 : 6.1

A) 시스템 Y를 위해 버전 업그레이드를 하면 시스템 X는 작동하지 않을 것이다. 
공통으로 함께 연동되는 소프트웨어, 실행 환경이나 라이브러리, 디렉터리나 설정 파일에서 
공유하는 대상을 어느 한 쪽만을 위해 수정하면 다른 쪽에서 오류가 발생하게 된다.

 

 

업데이트할 때만 발생하는 것이 아니라 서버를 설계할 때는 문제가 없었던 프로그램 끼리도 실제로 설치해보면 오류를 일으키는 경우도 있다. 문제의 원인은 대부분 프로그램 간 공유에 있다.

 

도커 컨테이너를 사용해 프로그램을 격리하면 여러 프로그램이 한 서버에서 실행되면서 발생하는 문제를 해결 가능하다.

시스템 X가 필요버전 3.7을 사용하고 시스템Y가 필요버전 6.1을 사용하면 이들을 세트로 묶어 따로 격리하면 된다.