도커의 구조에 대해 좀 더 자세히 살펴보자.
일반적으로 도커와 컨테이너는 서버에서 사용된다.
간단하게 말하면
서버 컴퓨터의 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 운영체제
를 갖춰야 도커를 실행할 수 있다.
'Docker' 카테고리의 다른 글
[Docker] 2-3. 도커 컨테이너의 생애주기와 데이터 저장 (0) | 2023.05.18 |
---|---|
[Docker] 2-2. 도커 허브, 이미지, 컨테이너 (0) | 2023.05.17 |
[Docker] 1-2. 서버와 도커 (0) | 2023.05.16 |
[Docker] 1-1. 도커란 무엇인가 (0) | 2023.05.15 |
[Docker Error] Bind for 0.0.0.0:8080 failed: port is already allocated (0) | 2023.05.04 |