Docker Desktop for Windows FAQ
Docker Desktop for Windows FAQ
Docker Desktop for Windows에 대해 자주 묻는 질문과 답변을 정리한 문서예요. VirtualBox 병행 사용, Windows 버전 요구, 심볼릭 링크, 인증서 추가 등을 다뤄요.
본문
Docker Desktop과 함께 VirtualBox를 사용할 수 있나요?
네, 머신에서 Windows Hypervisor Platform 기능을 활성화했다면 Docker Desktop과 함께 VirtualBox를 실행할 수 있어요.
Windows 10 또는 Windows 11이 왜 필요한가요?
Docker Desktop은 Windows Hyper-V 기능을 사용해요. 오래된 Windows 버전에도 Hyper-V가 있지만, 그 Hyper-V 구현에는 Docker Desktop이 동작하는 데 중요한 기능이 없어요.
Windows Server에서 Docker Desktop을 실행할 수 있나요?
아니요. Windows Server에서 Docker Desktop을 실행하는 것은 지원되지 않아요.
Windows에서 심볼릭 링크는 어떻게 동작하나요?
Docker Desktop은 두 가지 유형의 심볼릭 링크를 지원해요: Windows 네이티브 심볼릭 링크와 컨테이너 안에서 만든 심볼릭 링크. Windows 네이티브 심볼릭 링크는 컨테이너 안에서 심볼릭 링크로 보여요. 반면 컨테이너 안에서 만든 심볼릭 링크는 mfsymlinks로 표현돼요. 이들은 특수 메타데이터가 있는 일반 Windows 파일이에요. 그래서 컨테이너 안에서 만든 심볼릭 링크는 컨테이너 안에서는 심볼릭 링크로 보이지만 호스트에서는 보이지 않아요.
Kubernetes와 WSL 2와의 파일 공유
Docker Desktop은 Kubernetes를 실행하는 컨테이너 안의 /run/desktop 아래에 Windows 호스트 파일시스템을 마운트해요. Kubernetes Persistent Volume을 구성해 호스트의 디렉터리를 나타내는 예시는 Stack Overflow 게시물을 참고하세요.
커스텀 CA 인증서를 어떻게 추가하나요?
레지스트리 서버 인증서를 검증하는 신뢰된 CA(인증 기관)와 레지스트리에 인증하는 클라이언트 인증서를 Docker 데몬에 추가할 수 있어요. Docker Desktop은 모든 신뢰된 CA(root 또는 intermediate)를 지원해요. Docker는 Trust Root Certification Authorities 또는 Intermediate Certification Authorities 아래에 저장된 인증서를 인식해요. Docker Desktop은 Windows 인증서 스토어를 기반으로 모든 사용자 신뢰 CA의 인증서 번들을 만들고 Moby 신뢰 인증서에 추가해요. 따라서 호스트에서 신뢰하는 엔터프라이즈 SSL 인증서는 Docker Desktop에서도 신뢰돼요. 레지스트리용 CA root 인증서 설치 방법은 Docker Engine 주제의 인증서로 리포지토리 클라이언트 검증을 참고하세요.
클라이언트 인증서를 어떻게 추가하나요?
클라이언트 인증서를 ~/.docker/certs.d/<레지스트리>/client.cert와 ~/.docker/certs.d/<레지스트리>/client.key에 추가할 수 있어요. 인증서를 git 명령으로 push할 필요는 없어요. Docker Desktop 애플리케이션이 시작되면 Windows 시스템의 ~/.docker/certs.d 폴더를 Hyper-V에서 실행되는 Moby(Docker Desktop 가상 머신)의 /etc/docker/certs.d 디렉터리로 복사해요. keychain이나 ~/.docker/certs.d 디렉터리를 변경한 후에는 변경 사항을 적용하려면 Docker Desktop을 재시작해야 해요. 레지스트리는 insecure registry로 나열될 수 없어요. Docker Desktop은 insecure registry 아래에 나열된 인증서를 무시하고 클라이언트 인증서를 보내지 않아요. docker run처럼 레지스트리에서 pull을 시도하는 명령은 명령줄과 레지스트리 양쪽에 오류 메시지를 만들어요. 검증용 클라이언트 TLS 인증서 설정 방법은 Docker Engine 주제의 인증서로 리포지토리 클라이언트 검증을 참고하세요.