Docker Desktop 일반 FAQ

Docker Desktop 일반 FAQ

Docker Desktop 사용 중에 자주 묻는 질문과 답변을 정리한 문서예요. 오프라인 사용, 원격 Engine API 연결, USB 장치 통과, 프록시 확인, 관리자 권한 없이 실행하는 방법 등을 다뤄요.

출처: General FAQs for Desktop

본문

Docker Desktop을 오프라인으로 사용할 수 있나요?

네, 가능해요. 하지만 활성 인터넷 연결이 필요한 기능은 접근할 수 없어요. 또한 Docker Desktop을 오프라인이나 air-gapped 환경에서 사용할 때는 로그인이 필요한 기능이 동작하지 않아요.

원격 Docker Engine API에 어떻게 연결하나요?

원격 Engine API에 연결하려면 Docker 클라이언트와 개발 도구에 Engine API 위치를 제공해야 할 수 있어요. Mac과 Windows WSL 2 사용자는 Unix 소켓 unix:///var/run/docker.sock으로 Docker Engine에 연결할 수 있어요. Docker Desktop for Linux는 시스템 전체 소켓 /var/run/docker.sock 대신 ~/.docker/desktop/docker.sock에 있는 per-user 소켓을 사용해요.

Apache Maven 같은 DOCKER_HOSTDOCKER_CERT_PATH 환경 변수 설정을 기대하는 애플리케이션과 작업한다면, Unix 소켓으로 Docker 인스턴스에 연결하도록 이를 지정해요.

$ export DOCKER_HOST=unix:///var/run/docker.sock

Docker Desktop Windows 사용자는 named pipe npipe:////./pipe/docker_engine 또는 이 URL의 TCP 소켓 tcp://localhost:2375로 연결할 수 있어요. 자세한 내용은 Docker Engine API 문서를 참고하세요.

컨테이너에서 호스트의 서비스에 어떻게 연결하나요?

호스트는 IP 주소가 계속 바뀌거나, 네트워크가 없으면 아예 없을 수도 있어요. 호스트가 사용하는 내부 IP로 해석되는 특별한 DNS 이름 host.docker.internal로 연결하는 것을 권장해요. 자세한 내용과 예시는 컨테이너에서 호스트의 서비스로 연결하는 방법을 참고하세요.

USB 장치를 컨테이너에 통과시킬 수 있나요?

Docker Desktop은 직접 USB 장치 통과(passthrough)를 지원하지 않아요. 하지만 USB over IP를 사용해 일반 USB 장치를 Docker Desktop VM에 연결하고, 그것을 다시 컨테이너로 전달할 수 있어요. 자세한 내용은 Docker Desktop에서 USB/IP 사용하기를 참고하세요.

Docker Desktop이 프록시 서버를 사용 중인지 어떻게 확인하나요?

확인하려면 httpproxy.log에 기록된 가장 최근 이벤트를 보면 돼요. macOS에서는 ~/Library/Containers/com.docker.docker/Data/log/host, Windows에서는 %LOCALAPPDATA%/Docker/log/host/에 있어요. 예상할 수 있는 예시 몇 가지예요.

  • 앱 수준 설정(proxy mode manual)으로 프록시 사용:
host will use proxy: app settings http_proxy=http://172.211.16.3:3128 https_proxy=http://172.211.16.3:3128
Linux will use proxy: app settings http_proxy=http://172.211.16.3:3128 https_proxy=http://172.211.16.3:3128
  • 시스템 수준 설정(proxy mode system)으로 프록시 사용:
host will use proxy: static system http_proxy=http://172.211.16.3:3128 https_proxy=http://172.211.16.3:3128 no_proxy=
Linux will use proxy: static system http_proxy=http://172.211.16.3:3128 https_proxy=http://172.211.16.3:3128 no_proxy=
  • 프록시 서버를 사용하도록 구성되지 않음:
host will use proxy: disabled
Linux will use proxy: disabled
  • 앱 수준 설정(proxy mode manual)과 PAC 파일 사용:
using a proxy PAC file: http://127.0.0.1:8081/proxy.pac
host will use proxy: app settings from PAC file http://127.0.0.1:8081/proxy.pac
Linux will use proxy: app settings from PAC file http://127.0.0.1:8081/proxy.pac
  • 구성된 프록시 서버로 연결 요청:
CONNECT desktop.docker.com:443: host connecting via static system HTTPS proxy http://172.211.16.3:3128

관리자 권한 없이 Docker Desktop을 실행할 수 있나요?

Docker Desktop은 설치할 때만 관리자 권한이 필요해요. 설치 후에는 실행에 관리자 권한이 필요 없어요. 하지만 비관리자 사용자가 Docker Desktop을 실행하려면 특정 설치 프로그램 플래그로 설치하고 플랫폼별로 다른 사전 요구 사항을 충족해야 해요.

Mac: 관리자 권한 없이 Docker Desktop을 실행하려면 명령줄로 설치하고 --user=<사용자> 설치 플래그를 전달해요.

$ /Applications/Docker.app/Contents/MacOS/install --user=<username>

그다음 지정된 사용자 ID로 머신에 로그인해 Docker Desktop을 실행할 수 있어요.

참고: 실행 전에 ~/Library/Group Containers/group.com.docker/ 디렉터리에 settings-store.json 파일이 이미 있다면, Finish 를 선택할 때 관리자 권한을 요구하는 Finish setting up Docker Desktop 창이 보일 거예요. 이를 피하려면 실행 전에 이전 설치에서 남은 settings-store.json 파일을 삭제하세요.

Windows: (플랫폼별 절차는 원문 참고)

더 알아보기