Docker Desktop 유료화 및 대응방안

2022. 2. 4. 18:00Cloud Computing/Kubernetes

Docker Desktop 이란?

  • Windows와 OSX(Mac)에서 별도의 복잡한 환경 설정없이 간편하게 설치만으로 Docker 및 Kubernetes를 사용할 수 있게 해주는 GUI 관리 툴 입니다.
  • Docker 자체를 구동해주는 docker-engine이나 관리 명령어를 제공하는 docker cli 가 같이 설치 되기는 하지만, 해당 라이선스 정책과는 별개 입니다.

출처: https://www.docker.com/products/docker-desktop

Docker Desktop 유료화

유료 플랜 적용 기준

  • 무료사용이가능했던 Docker Desktop이 아래 기준을 벗어나면 이제 유료 플랜을 구독해야합니다.
    • 개인 사용자
    • 회사에서 사용하는 경우
      • 250인 이하의 회사
      • 매출 $1000만 달러 미만의 회사
    • 2022년 2월 1일부터 적용

구독 모델

  • 사용자별 월간 또는 연간 플랜으로 구독할수 있습니다.
    • 구독 모델별 세부 기능 및 비용은 https://www.docker.com/pricing 에서 확인 가능합니다.
    • docker hub 유료 포함되므로, 좀더 docker hub를 편하게 쓰실 수 있습니다.

 

 

Docker Desktop 대체 방안

  • 상기 유료 플랜 구독 비용에 부담이 없으면, 그대로 구독해서 쓰는게 가장 편한 방법입니다. 
  • Docker나 Kubernetes를 쓰기 위해서 Docker Desktop이 꼭 필요한지 생각보면 그건 아닙니다.
    사실 Container Runtime과 CLI를 설치해주고 관리를 좀 더 편하게 해주는 툴일 뿐이고, 다른 방법들도 있기 때문입니다.
    물론 Docker Desktop이 가장 잘 만들어지고 대중화된 툴이기 때문에, 다른 툴을 쓸때 조금 더 불편하긴 합니다.
  • Docker Engine 이나, Docker CLI는 유료화 대상이 아니기 때문에 Docker Desktop을 삭제하고 Docker Engine 과 Docker CLI를 설치하면 됩니다. 그리고 PC에 Kubernetes가 필요하다면 Minikube, K3s, MicroK8s 등을 설치해서 사용할 수 있습니다.
  • Docker Engine은 Linux위에서 구동 되므로 Linux를 일단 띄워야 하므로 Hypervisor가 필요하게 됩니다.
    로 Windows는 WSL2 를 이용하고, Mac은 VirtualBox 또는 QEMU를 이용하고 Lima나 minikube를 이용해서 Linux를 띄웁니다.
  • 이러한 과정을 한번에 해준것이 Docker Desktop 이였고, SUSE에 인수된 Rancher에서도 대응되는 무료 툴을 발표했습니다.

아래 참조링크의 여러가지 툴을 테스트 해 본 결과 Rancher Desktop을 사용하는 방법이 제일 간단하고 활용성도 높았습니다.
https://rancherdesktop.io/

Rancher Desktop 소개

  • 라이센스는 Apache2.0이고, Electron 기반으로 만들어져 있습니다.
  • OSX에서는 가상화로 Lima/QEMU 를 사용하고, Windows 10에서는 WSL2를 사용합니다.
  • 경량화된 Kubernetes인 k3s를 설치합니다. PC에서 테스트/개발용으로 쓰기에는 가벼워서 더 좋은 것 같습니다.
  • 업데이트도 지원하며, 간단한 GUI도 역시 제공하며, Kuberenetes를 쉽게 끄고 켤수 있고, K8s Context 변경도 GUI로 지원 합니다.
  • Container Runtime으로 dockerd와 containerd 둘 다 선택가능합니다. 이를 위한 CLI로 docker와 nerdctl를 지원합니다.
  • 실제 구성 아키텍처는 아래와 같으며, 결국 아래에 별도 설명할 매뉴얼 구성방식과 유사합니다.

Rancher Desktop 아키텍처
Rancehr Desktop 설정 화면 : Runtime 선택과 스펙 변경을 쉽게 할수 있다.

Rancher Desktop 설치 방법 및 주의점

  • 기존 Docker Desktop을 삭제 해야 합니다.
  • https://rancherdesktop.io/ 에서 환경별(Windows, Mac(Intel,ARM), Linux) 설치 파일을 받아서 실행, 설치하면 끝입니다.
  • 설치시 Container Engine(Runtime)을 선택해야 하는데, containerd를 쓰면 neredctl로 container를 다루어야 합니다.
    기존 처럼 docker cli를 쓸려면 dockerd(movy)를 선택해야 합니다.
    • kubernetes 아키텍처상 바람직한 지향점은 containerd가 맞지만, 현재는 docker-desktop 대체용의 호환성을 목표로 하므로 dockerd를 선택하도록 합니다. 설정 메뉴를 통해 언제든지 변경 가능합니다.

  • Mac의 경우 기본 커맨드의 링크를 걸기 위해 권한을 요청하는 아래 팝업이 뜨고, 허용해주기 위해 시스템 비밀번호를 입력해 주어야 합니다.

Supporting Uiilities에서 (삭제된) 기본 docker 커맨드를 기본 패스에 링크 걸수 있습니다.

  • 설치가 완료가 되면 K3s가 떠있으며, 아래 처럼 관련 container 및 Kubernetes Object들을 확인할 수 있습니다.
    특이한 점은 ingress로 Traefik을 사용합니다.

docker 커맨드로 노드의 container를 확인 할수 있다.
kubectl 커맨드로 node의 상세 내용 확인
kubectl 커맨드로 k3s의 기본 object 확인

 


매뉴얼 구성 가이드

매뉴얼로 VM위에 Ubuntu를 설치 한 후 Docker Engine을 설치하고 Host와 연결을 설정하는 방법입니다.

Rancher Desktop를 쓰지 않고, 직접 Docker 환경을 구성 하고 싶을 때 사용 할 수 있습니다.

Windows

    • 기존 Docker Desktop 삭제 : 시작 → 설정 → 앱 → Docker Desktop
    • WSL2 설치
      • 시작 버튼 우클릭 → Windows PowerShell(관리자) 실행 → 실행 된 커맨드 창에 wsl --install 입력 후 엔터 → 리부팅(다시 시작)후 로그인 하면 나머지 설치됨 → ID/PW 설정
      • 또는 https://aka.ms/wslstore 접속 → MS Store 열기 → Ubuntu 선택 → 설치
      • WSL2의 상세 설치 가이드는 아래 링크를 참고 합니다.
    • Docker 설치
      • Ubuntu를 설치 했기 때문에 사실 상 Ubuntu에 Docker를 설치하는 것과 거의 동일합니다.
# 스크립트에 설치 시작전 대기시간 20초가 있어 기다린다. Docker Desktop 권유는 무시.
curl -fsSL https://get.docker.com | sudo bash

# Windows용 docker client와 tcp로 통신하기 위한 설정
cat <<'EOF' | sudo tee /etc/docker/daemon.json
{
  "features": { 
    "buildkit": true 
  }, 
  "hosts": ["tcp://127.0.0.1:2375", 
  "unix:///var/run/docker.sock"]
}
EOF

# 자동 실행 설정
## Win 10 인 경우 : 셸시작시 자동 실행 설정 (WSL에서는 서비스 자동 실행 기능이 없음)
cat <<'EOF'>>~/.profile
wsl.exe -u root -e sh -c "service docker status || service docker start"
EOF

## Win 11 인 경우 : 부팅시 자동 실행 설정
cat <<'EOF' | sudo tee -a /etc/wsl.conf
[boot]
command="service docker start"
EOF


sudo service docker start
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

# Test
docker run --rm -i  hello-world
docker run --rm -it alpine ping -c5 google.com

 

  • Windows에서 Docker 환경 설정
    • Ubuntu 셸안에서 계속 써도 되겠지만 Windows 에서 CLI를 실행 후 WSL2로 실행된 Docker-Engine에 연결할려면 다음과 같이 수행 합니다.
    • 아래 경로에서 CLI 파일을 받고 압축을 푼후 docker.exe 를 PATH가 잡혀있는 곳으로 복사한다.
    • 이후 파워셸에서 아래 커맨드를 실행해서 docker context를 변경 합니다. 
docker.exe context create wsl
docker.exe context update wsl --description "WSL" --docker "host=tcp://127.0.0.1:2375"
docker.exe context use wsl

# Test
docker run --rm -i  hello-world

 

 

 

참고 링크