Docker Desktop for Mac FAQ
Docker Desktop for Mac FAQ
Docker Desktop for Mac에 대해 자주 묻는 질문과 답변을 정리한 문서예요. HyperKit, 디스크 이미지 관리, TLS 인증서 추가 등을 다뤄요.
본문
HyperKit란 무엇인가요?
HyperKit은 macOS의 Hypervisor.framework 위에 구축된 레거시 하이퍼바이저예요. 이전 버전의 Docker Desktop for Mac이 Linux VM을 실행하는 데 HyperKit을 사용했어요. 현재 Docker Desktop은 기본적으로 Apple Virtualization framework를 사용해요. HyperKit은 이전 구성의 역사적 맥락으로 여기에 남겨두었어요.
HyperKit의 이점은 무엇인가요?
HyperKit이 기본 하이퍼바이저였을 때 Docker 워크로드에 맞춘 가벼운 가상화 레이어를 제공했고, Oracle VirtualBox나 VMware Fusion 같은 서드파티 VM 제품의 필요성을 없앴어요.
Docker Desktop은 Linux 컨테이너와 이미지를 어디에 저장하나요?
Docker Desktop은 Linux 컨테이너와 이미지를 Mac 파일시스템의 하나의 큰 "disk image" 파일에 저장해요. 이는 컨테이너와 이미지를 /var/lib/docker 디렉터리에 보통 저장하는 Linux의 Docker와 다르다는 점이에요.
디스크 이미지 파일은 어디에 있나요?
디스크 이미지 파일을 찾으려면 Docker Desktop Dashboard에서 Settings 를 선택하고 Resources 탭의 Advanced 를 선택해요. Advanced 탭은 디스크 이미지의 위치, 최대 크기, 실제 사용 공간을 표시해요. 다른 도구는 실제 크기가 아니라 최대 파일 크기로 공간 사용을 표시할 수 있어요.
파일이 너무 크면?
디스크 이미지 파일이 너무 크면 다음을 할 수 있어요.
- 더 큰 드라이브로 이동
- 불필요한 컨테이너와 이미지 삭제
- 파일의 최대 허용 크기 줄이기
더 큰 드라이브로 이동: Settings > Resources 탭의 Advanced에서 Disk image location 섹션의 Browse를 선택해 새 위치를 고르고 Apply 를 선택해요.
중요: Finder에서 직접 파일을 옮기면 Docker Desktop이 파일을 추적하지 못할 수 있으니 하지 마세요.
불필요한 컨테이너/이미지 삭제: 클라이언트와 데몬 API가 1.25 이상이면 docker system df -v로 자세한 공간 사용 정보를 볼 수 있어요. 이미지를 나열하려면 docker image ls, 컨테이너를 나열하려면 docker container ls -a를 실행해요. 중복 객체가 많으면 docker system prune을 실행해요. 이 명령은 중지된 컨테이너, 사용하지 않는 네트워크, dangling 이미지, 빌드 캐시를 모두 제거해요.
디스크 이미지 파일 형식에 따라 호스트 공간을 되찾는 데 몇 분 걸릴 수 있어요. 파일이 Docker.raw라면 호스트 공간이 몇 초 안에 회수되고, Docker.qcow2라면 몇 분 후 백그라운드 프로세스가 공간을 비워요. 공간은 이미지를 삭제할 때만 비워져요. 실행 중인 컨테이너 안에서 파일을 삭제해도 자동으로 비워지지 않아요. 언제든 공간 회수를 트리거하려면:
$ docker run --privileged --pid=host docker/desktop-reclaim-space
많은 도구가 실제 파일 크기가 아닌 최대 파일 크기를 보고한다는 점을 참고하세요. 터미널에서 파일의 실제 크기를 조회하려면:
$ cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
$ ls -klsh Docker.raw
2333548 -rw-r--r--@ 1 username staff 64G Dec 13 17:42 Docker.raw
이 예시에서 디스크 실제 크기는 2333548 KB이고 최대 크기는 64 GB예요.
최대 크기 줄이기: Settings > Resources 탭의 Advanced에서 Disk image size 섹션의 슬라이더로 최대 크기를 조정하고 Apply 를 선택해요. 최대 크기를 줄이면 현재 디스크 이미지 파일이 삭제되므로 모든 컨테이너와 이미지가 유실돼요.
TLS 인증서를 어떻게 추가하나요?
레지스트리 서버 인증서를 검증하는 신뢰된 CA(인증 기관)와 레지스트리에 인증하는 클라이언트 인증서를 Docker 데몬에 추가할 수 있어요.
커스텀 CA 인증서 추가(서버 측): 모든 신뢰된 CA(root 또는 intermediate)가 지원돼요. Docker Desktop은 Mac Keychain을 기반으로 모든 사용자 신뢰 CA의 인증서 번들을 만들고 Moby 신뢰 인증서에 추가해요. 따라서 호스트에서 신뢰하는 엔터프라이즈 SSL 인증서는 Docker Desktop에서도 신뢰돼요. 커스텀 자체 서명 인증서를 수동 추가하려면 인증서를 macOS keychain에 추가하는 것으로 시작해요. 예시:
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
자신의 로컬 keychain에만 추가하길 원한다면:
$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt
keychain이나 ~/.docker/certs.d 디렉터리를 변경한 후에는 변경 사항을 적용하려면 Docker Desktop을 재시작해야 해요. 자세한 방법은 Adding Self-signed Registry Certs to Docker & Docker Desktop for Mac 블로그를 참고하세요.