코딩 에이전트를 위한 Docker 샌드박스 사용

발행: (2026년 2월 4일 오전 08:57 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Scenario

코딩 에이전트를 다음과 같이 사용하고 싶습니다:

  • 실제 코드베이스 수정
  • 시스템 의존성 설치
  • 컨테이너 빌드 및 실행
  • 허용 플래그를 사용해 무인으로 실행

…하지만 노트북이나 자격 증명을 위험에 빠뜨리지 않으면서. Docker Sandbox는 프로젝트 작업 공간만 마운트된 일회용 microVM 안에서 에이전트를 실행함으로써 이를 해결합니다.

Step 1: Create a Sandbox

로컬 프로젝트 디렉터리를 작업 공간으로 사용하여 새 sandbox를 생성합니다:

docker sandbox create --name agent-sandbox --workspace ./my-project

What this does:

  • 전용 microVM을 생성
  • ./my-project만 sandbox에 마운트
  • OS, 홈 디렉터리, 비밀 정보는 격리된 상태 유지

Step 2: Enter the Sandbox

sandbox 안에서 인터랙티브 셸을 시작합니다:

docker sandbox exec agent-sandbox bash

이제 sandbox 내부에 있으며, 호스트 머신이 아닙니다. 이제부터:

  • 모든 패키지 설치
  • 모든 설정 변경
  • 모든 Docker 명령

…은 완전히 격리됩니다.

Step 3: Run a Coding Agent (Unattended)

sandbox 안에서 코딩 에이전트를 허용 모드로 실행합니다:

claude-code run --dangerously-skip-permissions --project /workspace

Why this is safe:

  • 에이전트가 microVM 안에서 실행됨
  • 프로젝트 디렉터리만 쓰기 가능
  • 호스트 OS, SSH 키, 자격 증명에 접근할 수 없음

이것이 Docker Sandbox의 예정된 워크플로입니다.

Step 4: Let the Agent Install Dependencies

에이전트는 환경을 자유롭게 수정할 수 있습니다:

apt-get update
apt-get install -y nodejs npm

권한 프롬프트나 승인 루프가 없으며, 머신에 위험이 없습니다.

Step 5: Let the Agent Use Docker

sandbox 안에서 에이전트는 컨테이너를 빌드하고 실행할 수 있습니다:

docker build -t my-app .
docker run -p 8080:8080 my-app

Important notes:

  • 이는 호스트 Docker 데몬을 사용하지 않음
  • 컨테이너는 sandbox microVM 내부에서 완전히 실행됨

이 기능이 Docker Sandbox를 일반 컨테이너와 근본적으로 구분시키는 이유입니다.

Step 6: Review the Results on the Host

sandbox를 종료하고 변경 사항을 확인합니다:

git diff

에이전트가 만든 의도된 코드 변경만 표시됩니다—불필요한 시스템 패키지, OS 파일 수정, 백그라운드 프로세스는 없습니다.

Step 7: Delete the Sandbox

작업이 끝났으면 sandbox를 삭제합니다:

docker sandbox delete agent-sandbox

microVM이 즉시 파괴되어 환경이 완전히 사라집니다. 코드 변경 외에는 아무것도 남지 않으므로 다음 번에 깨끗한 상태로 시작할 수 있습니다.

Why This Pattern Works

Docker Sandbox는 에이전트에게:

  • 실제 운영 체제
  • 패키지 매니저와 시스템 도구
  • Docker 접근 권한
  • 완전한 자율성

을 제공하면서, 사용자에게는:

  • microVM을 통한 강력한 격리
  • 일회용 환경
  • 호스트 오염 제로
  • 허용 모드 사용에 대한 자신감

을 제공합니다.

When to Use Docker Sandboxes

다음 상황에 이 패턴이 이상적입니다:

  • 코딩 에이전트를 무인으로 실행할 때
  • --dangerously-skip-permissions 같은 플래그 사용 시
  • 에이전트가 도구를 동적으로 설치하도록 허용할 때
  • 에이전트가 컨테이너를 빌드하고 실행하도록 할 때
  • 두려움 없이 적극적으로 실험하고자 할 때

에이전트는 자유가 필요하고, 여러분의 머신은 그렇지 않아도 됩니다.

Back to Blog

관련 글

더 보기 »

AI가 당신에게 뺨을 때릴 때

AI가 당신을 뺨 때릴 때: Adama에서 Claude가 생성한 코드 디버깅 AI에게 복잡한 기능을 “vibe‑code”하게 맡겨본 적이 있나요? 그 결과 미묘한 버그를 디버깅하느라 몇 시간을 보내게 됩니다.