cloud/question

Question <3> | Docker engine과 docker desktop의 차이

yjlee06 2024. 11. 10. 04:43
반응형
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

  1. Difference between Docker Desktop and Docker Engine - General - Docker Community Forums
  2. Docker - ArchWiki