Docker Desktop for Mac 설치하기
Docker Desktop은 일반적으로 로컬 환경에서 docker를 편리하게 설치하고 실행하기 위해서 사용합니다. Docker 뿐만 아니라 Kubernetes 환경도 간편하게 설정하여 사용할 수 있습니다.
1. Docker Desktop for Mac 다운로드 및 설치
아래 링크에서 Docker Desktop on Mac 설치를 위한 .dmg 파일을 다운로드하여 설치를 진행해줍니다.
다운로드한 .dmg 파일을 실행하여 Docker.app을 응용 프로그램으로 복사해줍니다.
애플리케이션을 실행하면 메뉴 막대 상단에 아이콘이 생성됩니다. 또한 터미널에서 docker 명령어를 통해 정상적으로 설치된 것을 확인할 수 있습니다.
Dashboard 메뉴를 클릭하면 다음과 같이 Docker Desktop 대시보드가 실행됩니다.
1.1 Docker Desktop에서 docker image 실행하기
실행중인 컨테이너가 없는 상태에서 대시보드에 나온 커맨드를 실행하면 간단하게 docker image의 실행과 컨테이너의 동작을 확인할 수 있습니다.
$ docker run -d -p 80:80 docker/getting-started
# -d : 컨테이너를 백그라운드에서 실행
# -p 80:80 : 컨테이너의 80번 포트를 호스트의 80번 포트와 바인딩
# docker/getting-started : target image
커맨드 실행 이후에 다시 대시보드를 확인해보면 실행중인 컨테이너와 이미지가 생성된 것을 확인할 수 있습니다.
또한 docker ps 명령어를 통해 실행중인 컨테이너 목록을 확인할 수 있습니다.
$ docker ps
브라우저에서 localhost로 접속하여 확인해보면 컨테이너에서 실행중인 서비스를 확인할 수 있습니다.
2. Docker Desktop Kubernetes 설정
Docker Desktop에서 Kubernetes를 사용하기 위해서는 대시보드에서 쿠버네티스를 활성화해줘야 합니다. 우측 상단의 설정 아이콘을 클릭하고 Preferences > Kubernetes 탭에서 'Enable Kubernetes' 체크박스를 체크하고 'Apply & Restart' 버튼을 클릭해줍니다.
Docker Desktop 서비스가 재시작되고 쿠버네티스가 실행되면서 좌측 하단에 아이콘이 생성됩니다.
설치 완료 후에 hosts 파일을 확인해보면 다음과 같이 로컬호스트 주소에 'kubernetes.docker.internal' 도메인이 설정되어있는 것을 확인할 수 있습니다. 이 설정은 로컬 환경에서 쿠버네티스 클러스터에 접근하기 위해 사용됩니다.
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
터미널에서는 쿠버네티스의 Command Line Tool인 'kubectl' 커맨드를 실행하여 쿠버네티스가 정상적으로 설치된 것을 확인할 수 있습니다.
2.1 Docker Desktop에서 Kubernetes Application 배포하기
다음 커맨드를 실행하여 쿠버네티스 환경에 애플리케이션을 배포하고 노출하는 과정을 확인해보겠습니다.
'kubernetes-bootcamp'라는 샘플 이미지를 대상으로 deployment를 생성해줍니다.
$ kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
생성된 deployment를 조회하여 확인합니다.
$ kubectl get deployment
pod도 조회하여 'Running' 상태를 확인해줍니다.
$ kubectl get pod
애플리케이션의 확인을 위해 서비스 타입을 'NodePort'로 설정하고 포트를 8080으로 설정하여 노출해줍니다. NodePort는 클러스터 외부에서 서비스에 접근할 수 있도록 해주는 서비스 타입입니다.
$ kubectl expose deployment kubernetes-bootcamp --type=NodePort --port 8080
service를 조회하여 설정을 확인해줍니다. 서비스의 타입을 NodePort로 설정하면 30000 ~ 32767 사이의 포트 번호가 랜덤으로 할당됩니다.
$ kubectl get service
마지막으로 브라우저에서 접속하여 서비스의 동작을 확인해줍니다.
이상으로 Docker Desktop 설치 방법에 대해 알아봤습니다.
※ Reference
- jaynamm.tistory.com, Install Docker for MacOS (맥북 도커 설치), https://jaynamm.tistory.com/entry/Install-Docker-for-MacOS-%EB%A7%A5%EB%B6%81-%EB%8F%84%EC%BB%A4-%EC%84%A4%EC%B9%98
- www.daleseo.com, docker run 커맨드 사용법, https://www.daleseo.com/docker-run/
- cultivo-hy.github.io, [Docker] 개념 정리 및 사용 방법까지., https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/
- zerobig-k8s.tistory.com, [K8S 초보자용] Docker 클라이언트를 사용하여 쿠버네티스 설치하기, https://zerobig-k8s.tistory.com/68
- kubernetes.io, kubectl을 사용해서 디플로이먼트 생성하기, https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/
- kubernetes.io, 소스 IP 주소 이용하기, https://kubernetes.io/ko/docs/tutorials/services/source-ip/