도커 in 도커
컨테이너 내부에서 docker 명령어가 "없다"는 오류는 Docker CLI가 설치되지 않았기 때문입니다. /var/run/docker.sock 마운트만으로는 호스트 Docker 데몬에 연결할 수 있지만, CLI 바이너리 자체가 컨테이너 이미지에 없어 발생합니다.stackoverflow+1
해결 방법 1: Docker CLI 설치 (DoO/Docker-out-of-Docker)
컨테이너 내부로 들어가 Docker CLI를 설치하세요. Ubuntu/Debian 기반 이미지라면:
textapt-get update && apt-get install -y docker.io
또는 최소 CLI만:
textcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update && apt-get install -y docker-ce-cli
Alpine 기반이라면:
textapk add --no-cache docker-cli
설치 후 docker ps 테스트. 권한 오류 시 호스트에서 sudo chmod 666 /var/run/docker.sock 실행.stackoverflow+2
해결 방법 2: Docker CLI 포함 이미지 사용
Docker CLI가 미리 설치된 이미지로 재실행하세요. 예: docker 공식 이미지 또는 커스텀 빌드.
Dockerfile 예시:
textFROM ubuntu:24.04
RUN apt-get update && apt-get install -y docker.io
빌드 후 -v /var/run/docker.sock:/var/run/docker.sock와 함께 실행.caktusgroup+1
주의사항
- 컨테이너 사용자 그룹을
docker로 맞추거나 호스트 소켓 권한 조정 필요.[stackoverflow] - 보안상
--privileged피하고 DoO 방식 선호. 실제 DinD(데몬 내부 실행) 필요 시docker:dind이미지 사용.[caktusgroup]