docker docs를 읽어보면서
블로그를 작성하면서 도커에 대해 공부하기 위해 읽어보던 중 docker engine을 포함하고 있으나 client-server 구성이 아닌 것처럼 보이는 docker desktop에 대해 궁금증이 생겨 작성하게 되었습니다.
해당 포스트의 내용은 client-server 구조에 대해 알아야 이해하는데 도움이 되기에 해당 포스트를 읽고 오시는 것을 추천드립니다!
MSA 공부 <2편> | Docker architecture 파해 쳐 보자
들어가기 전_이번 포스트는 도커를 다루기 전 필수적인 개념이해는 아닙니다. 개발하다가 '왜 그렇지..?', ' 헷갈리네 '라는 생각이 들 때 참조하는 게 좋습니다. 1. 전반적인 Docker 구조도커는
devlany.tistory.com
Docker desktop과 Docker engine의 차이
docker desktop이란?
docker desktop은 docker engine에서 사용자의 편의성 기능 플러그인과 GUI를 추가한 버전 입니다.
이 말은즉 docker engine의 구조를 docker desktop 또한 가지고 있다는 것을 의미합니다. Docker engine은 client-server arcihtecture를 가지고 있습니다. 사용자가 docker-client에서 요청을 보내면 docker-server가 해당 명령을 받고 처리하죠. 이러한 과정은 모두 동일한 host 환경에서 이루어집니다.
하지만 docker desktop은 이 부분에서 차이점이 존재합니다.
Docker desktop은 통일된 환경을 제공하기 위해 가상화를 통하여 리눅스 가상 머신(이하 VM)을 생성합니다. 생성된 VM은 docker-server의 역할을 하게 되며 docker-client는 물리적인 host에 위치하게 됩니다. 즉 client와 server가 각각 다른 host에서 처리되는 것을 의미합니다.
요약하자면
docker engine은 하나의 host에 docker-client와 docker-server가 동시에 존재하나 docker-desktop은 VM에 docker-server가 위치하며 물리적인 host에는 docker-client가 위치합니다. 그러기에 윈도우, 맥과 같은 물리적 host에서 도커 컨테이너 작업을 처리하더라도 docker desktop 상에서는 실질적으론 vm에서 처리되는 것을 보는 것입니다.
이러한 차이로 인해 발생할 수 있는 문제
docker desktop의 host 네트워크와 VM네트워크는 엄연히 다른 네트워크 입니다네트워크입니다. host에서 내부로 접근한다면 physical host > VM > docker-server 해당 과정을 거치게 되기에 컨테이너에 ip로 직접 접근하거나 도커 네트워크에 접근 하는 것은 불가능합니다.
linux에 docker desktop을 사용할 수 있다던데?
사용은 가능하나 Linux에서 docker desktop을 사용할 때 성능이 저하되고 cpu 사용량이 증가 할 수 있기에 linux에 docker desktop을 설치하는 것은 권하지 않습니다.
Reforence
'cloud > question' 카테고리의 다른 글
Question <5> | SDLC model 이해하기 (1) (0) | 2024.11.13 |
---|---|
Question <4> | Detach mode란? (0) | 2024.11.12 |
docker package 특정 버전 다운로드 (0) | 2024.11.08 |
도커 엔진 삭제 및 도커 오브젝트(이미지, 볼륨, 컨테이너, 설정 파일) 삭제 (0) | 2024.11.07 |
Question <2> | workload는 무엇을 의미할까? (0) | 2024.09.29 |