도커 개요
도커란?
도커란 데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어이다.
격리가 필요한 이유
프로그램을 실행하기 위해서는 그 프로그램의 실행 환경이나 라이브러리가 필요하다.
한 시스템 환경에서 여러 프로그램을 실행하게 되면 프로그램 버전 간 의존성 문제가 생길 수 있다.
⇒ 도커 컨테이너를 이용해서 프로그램을 격리하면 문제 해결 가능
도커 컨테이너는 이미지로 내보낸 다음 다른 도커 엔진에서 다시 실행 가능하다.
⇒ 이를 이용해서 물리적 환경의 차이, 서버 구성의 차이를 무시 가능
💡격리 이유: 프로그램 의존성 문제 해결 & 하드웨어 의존성 문제 해결
도커의 동작 방식
- 도커는 Linux 위에서 실행된다.
- 도커 엔진 위에서 컨테이너가 동작한다.
- 컨테이너에서 도커 이미지를 실행시킨다.
Linux OS 이외 운영체제에서 동작방식
Windows나 Mac 등 Linux OS 외에 다른 운영체제에서 동작하는 경우, 내부적으로 Linux OS를 포함시켜서 도커를 실행하는 방식으로 동작한다.
따라서 도커는 무조건 Linux OS 위에서 동작한다고 할 수 있다.
도커와 컨테이너 내 프로그램은 Linux 기반
컨테이너에서 동작시킬 프로그램은 Linux용 프로그램이다.
컨테이너 내부 동작 원리상 Linux용 프로그램만 동작할 수 있기 때문이다.
단, 컨테이너 내부에서 Linux OS가 동작하고 있는 것은 아니다.
이를 가상화 프로그램과 비교하면 차이점을 명확하게 알 수 있다.
VMWare 등 가상화 프로그램의 경우 모든 구성요소를 소프트웨어적으로 구현하였기 때문에 실제 컴퓨터와 다름없다.
그러나 컨테이너 내부 동작은 실제 동작의 일부를 물리적 서버에 위임한 상태이다.
⇒ 따라서 컨테이너 내부에서도 Linux OS가 동작하고 있는 것은 아니다.
실제로는 Linux OS와 비슷한 무언가가 동작하고 있다고 이해할 수 있다.
'개발 - Coding > Infra' 카테고리의 다른 글
네트워크 영역에서의 NAT와 AWS NAT Gateway: 1편 (0) | 2023.06.16 |
---|---|
클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트 p.92 오류 해결 (0) | 2023.03.03 |
클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트 p.78 오류 해결 (0) | 2023.03.01 |
도커 컨테이너의 생애주기와 조작 실습 (4) | 2023.01.12 |
도커 이미지와 컨테이너 (0) | 2022.12.11 |