[Docker] docker daemon, docker desktop
나는 CLI 환경에서 작업하는것을 좋아해서 docker1
도 당연히 CLI에서만 작업을 하려고 했었다.
그런데 docker desktop
이라는 GUI환경을 제공해주는 app을 다운 받고 실행해 보았고
docker desktop
에서 제공해주는 CLI를 통해서 기본적인 예제들을 학습해 보았다.
그렇게 docker desktop
에서의 실습을 마치고 똑같은 CLI 환경인 Terminal에서 같은 실습을 진행해 보았는데 아래는 내가 했던 실습중의 한가지이다.
docker run ubuntu:20.04
라는 명령어를 통해 우분투를 도커로 띄워보려했는데 다음과 같은 오류가 발생하였다.
Docker daemon에 연결하지 못했다는 오류인데 docker는 알겠는데 docker daemon은 뭔지 모르겠어서 공식문서에서 답을 찾을수 있었는데
dockerd is the persistent process that manages containers. Docker uses different binaries for the daemon and client. To run the daemon you type dockerd.
해석하자면,
dockerd 는 컨테이너를 관리해주는 지속되는 프로세스이며, 도커는 데몬과 클라이언트를 다른 바이너리값을 사용한다. 데몬을 실행시키고 싶다면 dockerd
명령을 타이핑해라
차근차근 살펴보면,
1. dockerd 는 컨테이너를 관리해주는 지속되는 프로세스이며
여기서 docker daemon은 아직 정확히는 모르지만 컨테이너를 지속적으로 관리해주는 어떠한 프로세스임을 알수 있었다.
2. 도커는 데몬과 클라이언트를 다른 바이너리값을 사용한다.
이 말은 내가 추측하기로는 터미널에서 docker version을 했을때 버전이 2개가 나오는데, 바로 클라이언트사이드
와 서버사이드의 버전
이 각각 나온다.
명령어를 터미널에서 치는 내가
클라이언트사이드고 docker desktop을 running시키면 localhost에서 docker 명령에 대한 응답을 해준다 이 localhost
가 바로 서버사이드 인것이다.
때문에 docker version의 결과가 2가지가 나오는것이다.
각각 클라이언트와 서버로 각각 존재해야하니 다른 바이너리값을 하는것은 당연한것이다.
3. 데몬을 실행시키고 싶다면 dockerd
명령을 타이핑해라
이건 나의 Mac에서는 되지 않았다. brew dockerd
를 통해서도 설치하려했지만 되지 않았고 구글링과 오픈카톡방을 통해 알아본 결과 Mac에서는 dockerd(docker daemon)은 docker desktop의 running을 통해서만 실행가능한것 같았다. 그래서 나는 아래와 같은 결론에 도달했는데,
결론
나는 CLI환경에서 작업하는것을 매우 좋아하기때문에 Docker Desktop 설치하는 순간 뭔가 Github Desktop같이 괜히 GUI환경의 앱을 다운 받는것 같은 느낌이 들어 Docker Desktop도 아예 다운로드받지않고 docker를 오직 CLI 환경에서만 사용하고싶었다. 하지만 다른 맥 사용유저도 Docker Desktop을 running 해놓고 작업은 터미널에서 한다는 점과 내가 여태 인강을 봐오면서 스쳐봤던 인강 강사들의 Mac 상단바를 보면 항상 docker 시그니쳐인 고래가 있었다. 그래서 결론은 Mac에서는 Server Side Process 즉 docker daemon을 구동시키기위해서는 docker desktop이 필수라는 결론을 지었다.