https://gist.github.com/leoh0/3b3c908f0e931d7c620d273c77ea3757
docker-desktop 를 2022년 1월 31일까지 대체해야 하기에 다들 여러 방법을 사용하실 것 같은데 windows에서는 사실 wsl2 를 사용하면서 docker 를 그대로 깔아서 쓸 수 있다는 것 때문에 큰 제약없이(eg. wsl이 결국 브릿지를 거치기 때문에 vpn등 사용시 mtu 조절이 필요할 수 있는 제약이 있음)사용 가능한데 맥은 사실 linux 스택을 그대로 사용할 수 없기때문에 vm을 올려야 하는 상태입니다.
하지만 이에 따라 여러가지 불편한 점들이 있습니다.
공통적으로는 vm 사용시 mac에서 vpn을 사용하면 nat 처리나 mtu 사이즈 조절을 신경써야 될 수도 있습니다. https://gist.github.com/leoh0/ef5de7405be1421c0baab63038679967
docker-desktop 이전 세대에 사용했던 docker-machine 등을 이용할 수 있는데 docker-machine 같은경우 virtualbox를 하이퍼바이져로 사용하는데에는 큰 문제가 적을 수도 있지만 이 외의 타 하이퍼바이저는 여러가지 제약이 있습니다. hyperkit 같은 경우 동작하지 않는다던지 아니면 disk share 등에 제약이 있습니다. 하지만 일반적으로 virtualbox 보다 xhyve(hyperkit) 나 hvf 가 지원되는 qemu 를 사용하는 것이 더욱 효율적이기에 선택이 꺼려질 수 있습니다. 또한 docker-machine 자체의 코드가 오래되고 업데이트되지 않아서 예전 boot2docker를 사용해서 19.03 버전 이후를 사용하지 못한다던지 등의 문제들이 있습니다.
https://arnon.me/2021/09/replace-docker-with-minikube/
minikube의 노드 생성 코드는 docker-machine이 더이상 관리되지 않음에 따라 이것을 카피하여 계속 유지보수 하였기 때문에 비교적 좋게 잘 구동됩니다. hypervisor 나 docker version 문제에 대해서는 비교적 자유롭다고 할 수 있습니다. 다만 minikube를 사용시 쿠버네티스 컴포넌트들이 추가적으로 깔리고 이것을 시작하고 제거한다던지 조금 번거로움들이 남아 있다라고 할 수 있고, 엄연히 container host가 메인이라기 보다 k8s 사용성에 초점이 맞춰져 있기때문에 불편함들이 있습니다. 또한 mount 가 별개로 관리해야하는 등 좀 불편한 점들이 있습니다.
이런 문제들때문에 현재 간단하고 좀 편한 방법을 찾는도중 containerd for Mac 으로 유명한 lima로 docker 버전을 테스트 했을때 기존의 대부분의 동작들이 거의 완벽하게 호환되는 것을 확인했습니다. 그리고 9p virtfs 나 vsock 같은 문제들이 qemu에서 해결되면 mac에서 여러 성능과 사용성이 더 개선될 것으로 보입니다. 그래서 앞서 링크한 lima와 docker를 사용해보시고 더 좋은 방법이 있으면 공유해주세요 :) 긴 글 읽어주셔서 감사합니다.