Docker

[Docker] 2-1. 도커의 동작 원리

patrick-star 2023. 5. 17. 22:30
728x90

도커의 구조에 대해 좀 더 자세히 살펴보자.

일반적으로 도커와 컨테이너는 서버에서 사용된다.

간단하게 말하면
서버 컴퓨터의 OS가 Linux일 때 Linux 위에 도커 엔진을 설치하고 도커 엔진 위에 컨테이너를 위치시키는 구조로 이뤄져 있다.

컨테이너 안에는 OS 비슷한 것이 들어있음

컨테이너는 어떤 구조를 갖고 있을까

모든 컨테이너에는 Linux 운영체제 비슷한 무언가가 들어있다. 비슷한 무언가라고 말하는 이유는 진짜 OS가 아니기 때문이다.
아예 비어있는 컨테이너를 만들어서 원하는 구성을 할 수도 있지만 이는 좀 더 숙련된 다음에 진행하도록 하자.

도커 엔진 아래 & 컨테이너 내부에 Linux 운영체제 비슷한 것이 있다. 이 점이 도커의 가장 큰 특징 중 하나다.

원래 OS는 커널(kernel)과 커널에 명령을 전달하는 쉘(shell)로 구성되어 있다.
shell을 통해 명령을 전달하면 그 명령이 커널(kernel)에 전달되고 커널은 그 명령을 바탕으로 HW를 다룬다.

도커에서는 컨테이너분리되어 있기 때문에 서버 컴퓨터의 Linux 운영체제의 shell이 컨테이너에 있는 프로그램의 명령을 전달받을 수 없다.
그래서, 컨테이너 안에 있는 OS의 shell을 통해 컨테이너 안에 있는 프로그램의 명령을 전달받고 그걸 도커 엔진 ⇒ 커널에 전달하는 구조로 되어 있다.

즉, OS 비슷한 것 = OS의 주변부를 의미한다.

이러한 구조로 되어 있기 때문에 도커는 가벼움이라는 가장 큰 특징을 갖게 된다.

도커는 기본적으로 Linux 용이다.

도커는 기본적으로 Linux 운영체제에서만 동작한다.
왜냐하면, 도커는 밑바탕에 Linux 운영체제가 동작한다는 것을 전제로 만들어졌기 때문이다.

또한, 컨테이너 안에 있는 OS 주변부분도 Linux 운영체제의 주변부분이여야 한다. 그리고 컨테이너에서 실행할 SW 역시 Linux용 SW이다.

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

Windows 또는 macOS에서 도커 구동

하지만, Windows, macOS와 같은 다른 운영체제에서도 도커를 동작시킬 수 있다.

이걸 가능하도록 방법은 크게 2가지가 있다.

1) VirtualBox나 VMware 같은 가상 환경 위에 Linux 운영체제를 설치하고 그 위에서 도커를 실행
2) 윈도우 용 또는 macOS 용 도커 데스크톱 처럼 도커를 실행하는데 필요한 Linux 운영체제를 포함한 패키지를 설치해서 사용

결국 어떤 형태든 Linux 운영체제를 갖춰야 도커를 실행할 수 있다.

출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스