일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스쿠버다이빙
- PostgreSQL
- 다이빙
- 페오엑
- 오픈워터
- 엘든링
- 뱀파이어서바이벌
- JS
- 어드벤스
- 야생의숨결
- 여행
- window
- 씨홀스
- 공략
- 세부
- 젤다의전설
- docker
- Linux
- 취미
- psql
- JavaScript
- guide
- 게임
- 개발툴
- ubuntu
- window10
- Front-end
- poe2
- WebView
- hybride
- Today
- Total
Rianshin
[Docker]도커 유료화 대응 본문
1. 도커(Docker) 유료화?!
정확히는 도커 데스크탑(Docker Desktop) 유료화라고 보아야 할 것 같습니다.
지난 9월1일 아래와 같은 메일을 받았었습니다. 아마도 도커허브에 계정을 가지신 분들은 모두 같은 메일을 받으셨을 것 같은데요.
동시에 IT News 사이트들도 기사를 내기 시작했던 것 같습니다. 아래 링크는 그러한 기사 중에 하나입니다. "도커 데스크톱, 대기업 사용자에게는 유료화된다"
무료로 사용할 수 있었던 Docker Free 구독 정책의 이름을 Personal 플랜으로 변경한다는 내용입니다.
Docker Desktop은 Free 계정에서 다운받아서 무료로 사용할 수 있었는데 변경된 정책이 적용되면 개인 사용자나 250인 이하 그리고 $1000만 달러미만 매출의 회사에서만 사용할 수 있게 됩니다.
이 조건을 넘어가는 회사 소속의 사용자들은 유료 플랜을 구독해야합니다.
2022년 1월 31일까지가 유예기간이고 2022년 2월 1일부터 적용받게 됩니다.
2. 어떤 대안이 있을가?
a. Docker 사용을 위한 별도의 VM환경 설정
Docker Desktop은 윈도우와 맥에서 별도의 복잡한 환경설정없이 간편하게 Docker를 사용할 수 있게 해주는 툴이라고 볼 수 있습니다.
Docker의 기반 기술인 리눅스 Containerd는 오픈소스인 리눅스를 사용함으로 자유롭게 사용가능하고 Docker client툴인 Docker Cli 또한 오픈소스이므로, HyperVisor를 통한 리눅스 VM(Virtual Machine)사용 환경을 만들어 거기에 Docker Engine을 설치하고 Docker Cli를 통해 Docker Desktop 없이 맥/윈도우 환경에서 Docker를 사용할 수 있습니다.
검색을 해보면 환경을 설정하는 구체적이 방법이 여러가지가 나옵니다.
- Minikube를 사용한 환경구성 - https://rianshin.tistory.com/180
- LIMA (Linux Virtual Machine)을 사용한 환경구성 - https://rianshin.tistory.com/181
- Multipass를 사용한 환경구성 - https://rianshin.tistory.com/182
- Podman을 사용한 환경구성 - Migrating from Docker to Podman
위의 링크들에서 확인할 수 있듯이 맥/윈도우 환경에서 가상머신(VM)을 환경을 구축할 때 사용하는 여러가지 툴이 있고 그만큼 여러가지 방법을 통해 Linux Docker를 사용하는 환경을 구성할 수 있습니다.
b. Docker 유료 플랜의 구독
유료구독을 지불할 환경이 된다면 편하게 그냥 Docker Pro / Team / Business 구독 플랜 중에 하나를 구독하면 Docker Desktop을 라이센스 제한에 관계없이 사용할 수 있습니다. Docker Desktop을 사용하면 로컬머신에 별도의 가상화 환경을 구축할 필요없이 Docker를 사용할 수 있습니다. 이는 위에서 사용하는 방법들에서 사용하는 각 툴의 설치 및 버전 간 Dependency 등을 신경 쓸 필요없이 Docker Desktop에서 하나로 관리되므로 편리한 이점이 있는 것 같습니. 또한 유료구독에서 Docker hub의 Private Repository사용이 가능하고 동시 Docker Build시 등에서 좀 더 이점을 가질 수 있습니다.
3. Docker Desktop의 대안을 사용해보자
위의 2-a에서 첫번째 'Minikube를 사용한 환경구성'을 사용해서 로컬에 환경을 구성해 사용해 보았습니다. Docker Desktop을 삭제하지 않아도 되고, 프로세스를 꺼둔 상태에서 환경구성을 하였습니다.
a. Virtualbox 설치
- VirtualBox의 Download 페이지에서 다운받아 설치가능합니다.
- Mac에서는 Brew로 설치도 가능합니다.
brew install virtualbox
brew install virtualbox-extension-pack
- Docker-cli관련 툴과 minikube도 설치해 줍니다.
brew install docker
brew isntall docker-compose
brew install minikube
brew install docker-credential-helper
brew install docker-credential-helper-ecr
b. Minikube 구동
Minikube 구동없이 docker를 실행하면 실행되지 않습니다.
docker-cli만 있고 연결할 host(docker-engine)가 없는 상태입니다.
virtualbox를 가상머신 구동을 위한 hypervisor로 설정하여 minikube를 구동합니다. (minikube실행시 기본 config를 설정하는 방법과 Docker의 기본 환경으로 설정하는 방법은 2-a 의 링크를 참고해주세요.)
minikube start --vm-driver=virtualbox --cpus 4 --memory 8192 --disk-size=60g
그리고 Docker-cli에서 minikube를 host로 사용할 수 있도록 설정합니다.
eval $(minikube docker-env)
자 이제, docker 명령을 사용해보면,
Docker desktop 구동없이 docker 명령이 사용 가능하게 됩니다.
그런데 좀 이상합니다.
기존에 빌드해두었던 image들은 사라지고 없고 처음보는 image들만 보이네요.
그래서 다시 docker desktop을 켜고 minikube의 docker-env에 영향을 받지 않는 새로운 shell을 열고 docker image들을 확인해봅니다.
...
다행히 기존이 빌드해 두었던 이미지들이 보입니다. Docker 이미지들이 각 Docker runtime환경에 각각 관리되기 때문인 것으로 보입니다. 새로운 환경을 설정할때 간과할 수 있는 부분인데 유의해야 할 것 같습니다.
c. Docker Runtime의 종료
여기까지 동일하게 실행하였으면, 새로 설정한 Minikube를 이용한 Docker runtime환경과 Docker desktop의 runtime환경을 둘다 종료해주어야 로컬 머신의 리소스가 반환이 됩니다.
- Minikube의 종료 - minikube를 종료하고 쉘 닫기
minikube stop
exit
- Docker desktop 종료
4. Docker 유료구독의 사용
위에서 언급한 기존 이미지들의 사용과 기존에 도커빌드하며 배포까지했던 레거시 솔루션과의 정합성, 그리고 추후에 있을지도 모를 버전관리 등의 위험성 등 때문에 Docker유료 구독을 통해 Docker desktop을 계속 사용하기로 했습니다. Docker hub의 업그레이드된 사용성은 덤이구요.
팀구성원들과 같이 한번에 구독하여 사용하기 위해 Team 플랜을 사용하였습니다.
Team플랜의 'Buy Now' 버튼을 클릭하면 먼저 조직(Organization)을 설정하는 페이지가 나옵니다.
조직의 Namespace를 설정하면,
결재페이지가 뜹니다.
Organizations 탭에서 설정된 조직을 확인하고,
같은 조직으로 Team구독을 함께 사용할 구성원의 Docker-hub ID를 Member로 추가
이렇게하면, 이제 같은 Team구독으로 Docker를 사용할 준비가 완료되었습니다!
출처 : https://devocean.sk.com/blog/techBoardDetail.do?ID=163537
'Develop' 카테고리의 다른 글
Linux Find 명령어 사용법(리눅스 파일찾기) (0) | 2024.05.03 |
---|---|
외부에서 postgresql접속(localhost X) (0) | 2024.05.03 |
Utilizing Docker CLI without Docker Desktop (1) | 2024.03.13 |
Mac에서 Docker Desktop 사용하지 않고 Docker 사용하기 (feat. minikube) (1) | 2024.03.13 |
Curl 명령어 정리, 예제 (1) | 2024.01.23 |