Docker Desktop 유료화 및 대응방안
2022. 2. 4. 18:00ㆍCloud Computing/Kubernetes
Docker Desktop 이란?
- Windows와 OSX(Mac)에서 별도의 복잡한 환경 설정없이 간편하게 설치만으로 Docker 및 Kubernetes를 사용할 수 있게 해주는 GUI 관리 툴 입니다.
- Docker 자체를 구동해주는 docker-engine이나 관리 명령어를 제공하는 docker cli 가 같이 설치 되기는 하지만, 해당 라이선스 정책과는 별개 입니다.
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 설치 방법 및 주의점
- 기존 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의 경우 기본 커맨드의 링크를 걸기 위해 권한을 요청하는 아래 팝업이 뜨고, 허용해주기 위해 시스템 비밀번호를 입력해 주어야 합니다.
- 설치가 완료가 되면 K3s가 떠있으며, 아래 처럼 관련 container 및 Kubernetes Object들을 확인할 수 있습니다.
특이한 점은 ingress로 Traefik을 사용합니다.
매뉴얼 구성 가이드
매뉴얼로 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를 설치하는 것과 거의 동일합니다.
- Ubuntu에 Docker Engine 설치 : https://docs.docker.com/engine/install/ubuntu/
- 스크립트 설치: Ubuntu를 열고 아래 커맨드 실행
- 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
참고 링크
'Cloud Computing > Kubernetes' 카테고리의 다른 글
Kubernetes 백업 및 복구 솔루션 비교 (Velero, Kasten) (0) | 2022.05.30 |
---|