1. 도커(Docker)

- 다양한 프로그램과 데이터를 각각 독립된 환경(=컨테이너)에 격리하고, 컨테이너를 다루는 기능을 제공하는 소프트웨어

- 도커 엔진을 설치해야 컨테이너를 생성하고 구동시킬 수 있으며, 컨테이너를 생성하기 위해 이미지가 필요

- 용량이 허락하는 한 여러개의 컨테이너를 하나의 도커에 생성 가능

 

※ 테이터나 프로그램을 격리해야하는 이유

① 다른 프로그램과 특정 파일이나 디렉터리를 공유하거나 같은 경로에 설정 정보를 저장하는 경우가 있음

② 때문에, 하나의 프로그램의 업데이트가 다른 하나의 프로그램에 영향을 끼칠 수 있음

③ 따라서, 컨테이너를 사용해 각각의 프로그램을 격리한다면 공유로 인한 문제를 해결

2. 도커의 제약 사항

- 종류와 상관없이 리눅스 운영체제가 필요

- 컨테이너에서 동작시킬 프로그램 또한 리눅스용 프로그램

- 따라서, 도커는 기본적으로 리눅스 운영체제에서만 동작

- 즉, 도커는 리눅스 컴퓨터에 독립된 격리 환경을 만드는 것이며, 리눅스에서만 동작하고, 컨테이너에서 동작할 프로그램 또한 리눅스용 프로그램

 

※  호스트 OS가 Window나 macOS일 경우 가상 머신등을 이용

3. 동작원리

- 모든 컨테이너에는 도커엔진으로부터 명령을 프로그램에 전달하고, 수행 결과를 반환 하기위해 운영체제의 일부 기능을 포함

4. 이미지

- 이미지는 컨테이너를 만드는데 사용

- 컨테이너로도 이미지를 만들 수 있음

- 도커 허브에서 제공하는 공식 이미지(안정성이 좋으나, 제한적인 환경)커스텀 이미지(안정성이 낮으나, 환경설정이 가능)이 있음

5. 컨테이너 생애주기와 데이터 저장

- 컨테이너 생애주기 : 오래된 컨테이너를 폐기하고 새로운 컨테이너를 만드는 일련의 과정

- 데이터 저장 : 도커가 설치된 물리적 서버의 디스크를 마운트하여 데이터 저장

- 새로운 컨테이너를 생성할 경우 디스크를 마운트하여 데이터를 공유할 수 있음

6. 장단점 및 용도

① 장점

- 독립된 환경 : 여러 프로그램을 띄울 수 있음 = 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있음

- 이미지 생성 : 도커 허브에서 이미지를 공유하여 교체가 쉽고 업데이트가 쉽다 = 서버 관리가 용이

- 커널이 없음 : 배포판을 바꿀 수 있고 커널이 없어 가벼움 = 다루기 쉬움

 

② 단점

- 리눅스용 소프트웨어만 지원

- 호스트 서버의 장애가 모든 컨테이너에 영향을 끼침

 

③ 용도

- 동일한 환경을 여러개 생성하여 편리하게 공유

- 운영환경 적용전 격리된 환경을 이용한 신규 버전 테스트

- 동일 서버가 여러대 필요할 경우 여러 컨테이너를 사용하여 비용 및 시간 절약

'기타 > 도커' 카테고리의 다른 글

명령어  (0) 2022.11.21

+ Recent posts