728x90
반응형
출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스
도커의 구조
- 물리 서버가 있고, 이 물리 서버에서 동작하는 리눅스 운영체제가 있다. 여기까지는 일반적인 서버와 동일하다.
- 일반적인 서버라면 운영체제 위에 프로그램이나 데이터가 직접 올라간다. 하지만 도커를 사용하는 경우 운영체제 위에 도커 엔진이 동작하고 그 위에서 컨테이너가 동작한다.
- 프로그램이나 데이터는 컨테이너 안에 있다.
컨테이너 안에는 운영체제 비슷한 것이 들어있다.
- '컨테이너에 넣는다'는 표현을 생각하면 빈 컨테이너에 무언가를 넣는 상상을 하게 되지만 '정말로 텅 빈 컨테이너'는 이외로 잘 사용하지 않는다.(Scratch라는 이미지를 이용하면 텅 빈 컨테이너를 생성할 수 있지만, 사용할 일이 잘 없다)
- 모든 컨테이너에는 '리눅스 운영체제 비슷한 무언가'가 들어있다. '빈 컨테이너'가 진짜 텅 빈 것은 아니다.
- 도커 엔진 아래에도 리눅스 운영체제가 있는데, 컨테이너 속에 또 리눅스 운영체제 비슷한 것이 있다.
- 본래 운영체제는 '커널'과 '유틸리티'로 구성된다.
- 도커에서는 컨테이너가 완전히 분리돼 있으므로 밑바탕이 되는 리눅스 운영체제의 유틸리티 부분이 컨테이너 속 프로그램의 명령을 전달받을 수 없다. 따라서 컨테이너 속에 운영체제의 유틸리티 부분이 들어있어 프로그램의 명령을 전달받고 이를 밑바탕이 되는 커널에 전달하는 구조로 되어있다.
- 유틸리티 부분만 컨테이너에 넣고 커널은 밑바탕에 있는 것을 빌려 쓰는 형태 덕분에 도커의 가장 큰 특징인 '가벼움'을 얻을 수 있다.
도커는 기본적으로 '리눅스용'이다.
- 도커는 기본적으로 리눅스 운영체제에서만 동작한다.
- 도커는 밑바탕에서 리눅스 운영체제가 동작하는 것을 전제로 하는 구조로 되어있기 때문에 리눅스 운영체제에서만 동작할 수 있다.
- 컨테이너 안에 들어 있는 유틸리티도 리눅스 운영체제의 유틸리티 부분이어야 한다.
- 윈도우나 macOS용 소프트웨어는 컨테이너에 넣어도 동작하지 않는다.
- 도커는 리눅스 컴퓨터에 독립된 격리 환경을 만드는 것이며, 리눅스에서만 동작하고, 컨테이너에서 동작할 프로그램도 리눅스용 프로그램이다.
- 도커는 대게 서버 환경을 전제로 한 것이 많은데, 리눅스 운영체제가 서버에서 사용되는 경우가 많고 리눅스용 소프트웨어도 서버용 소프트웨어가 많기 때문이다.
Windows와 macOS에서 도커 구동하기
- 도커는 리눅스 운영체제를 사용한다고 전제하기 때문에 우리가 평소에 사용하는 Windows나 macOS 운영체제를 사용하는 컴퓨터에서는 도커를 사용할 수 없어야한다. 하지만 실제로는 Windows나 macOS 컴퓨터에서도 도커를 사용할 수 있다.
- VirtualBox나 VMware 같은 가상 환경 위에 리눅스 운영체제를 설치하고 그 위에서 도커를 실행하거나 'Windows용 또는 macOS용 도커 데스크톱'처럼 도커를 실행하는 데 필요한 리눅스 운영체제를 포함하는 패키지를 설치해 사용하는 2가지 경우로 나뉜다.
- 즉, Windows나 macOS 위에 리눅스 운영체제를 끌어들여 도커를 실행하는 것이다.
- 도커를 사용하려면 어떤 형태로든 리눅스 운영체제를 갖춰야 한다는 점을 기억하자.
728x90
반응형
'Study > 도커와 쿠버네티스 (Docker & Kubernetes)' 카테고리의 다른 글
도커의 장점과 단점 (0) | 2024.01.17 |
---|---|
도커 컨테이너의 생애주기와 데이터 저장 (0) | 2024.01.17 |
도커 허브와 이미지 그리고 컨테이너 (0) | 2024.01.16 |
서버와 도커 (0) | 2024.01.15 |
도커(Docker)란 무엇인가 (0) | 2024.01.15 |