Docker 셸 샌드박스에서 NanoClaw 실행

발행: (2026년 2월 16일 오후 11:00 GMT+9)
7 분 소요

Source: Docker Blog

WhatsApp 메시지를 24시간 내내 모니터링하는 개인 AI 어시스턴트를 실행하고 싶었지만, 전체 시스템에 접근 권한을 주는 것이 걱정되셨나요? Docker Sandboxes의 새로운 shell 샌드박스 유형이 완벽한 해결책입니다. 이 글에서는 가벼운 Claude‑기반 WhatsApp 어시스턴트인 NanoClaw를 안전하고 격리된 Docker 샌드박스 안에서 실행하는 방법을 보여드리겠습니다.

셸 샌드박스란?

Docker Sandboxes는 Claude Code, Gemini CLI 등과 같은 AI 코딩 에이전트를 실행하기 위한 사전 구성된 환경을 제공합니다. 내장되지 않은 다른 에이전트나 도구를 실행해야 할 때, 셸 샌드박스는 격리된 microVM 내부의 대화형 Bash 셸로 안내합니다. 여기에는 Node.js, Python, Git 및 일반적인 개발 도구가 포함된 깨끗한 Ubuntu 환경이 제공되며—사전 설치된 에이전트가 없고, 의견도 없습니다. 필요에 따라 원하는 것을 설치하면 됩니다.

Why Run NanoClaw in a Sandbox?

NanoClaw는 이미 에이전트를 컨테이너에서 실행하므로 설계상 보안에 신경을 씁니다. 전체 NanoClaw 프로세스를 Docker 샌드박스 안에서 실행하면 또 다른 계층을 추가합니다:

  • Filesystem isolation – NanoClaw는 마운트한 워크스페이스 디렉터리만 볼 수 있고, 홈 디렉터리는 볼 수 없습니다.
  • Credential management – API 키는 Docker 프록시를 통해 주입되며, 샌드박스 내부에 저장되지 않습니다.
  • Clean environment – 호스트의 Node.js 버전이나 전역 패키지와 충돌이 없습니다.
  • Disposabilitydocker sandbox rm 명령으로 언제든지 삭제하고 새로 시작할 수 있습니다.

사전 요구 사항

  • Docker Desktop이 설치되고 실행 중입니다.
  • Docker Sandboxes CLI(docker sandbox 명령 사용 가능) – v0.12.0 (2023년 2월 13일 기준 야간 빌드).
  • 환경 변수에 Anthropic API 키가 설정되어 있습니다.

Source:

설정하기

샌드박스 만들기

mkdir -p ~/nanoclaw-workspace
docker sandbox create --name nanoclaw shell ~/nanoclaw-workspace

샌드박스에 연결하기

docker sandbox run nanoclaw

이제 샌드박스 안에 들어왔습니다—격리된 VM에서 실행되는 Ubuntu 셸입니다. 여기부터 진행되는 모든 작업은 샌드박스 내부에서 이루어집니다.

Claude Code 설치하기

셸 샌드박스에는 Node.js 20이 미리 설치되어 있으므로, npm을 통해 Claude Code를 설치합니다:

npm install -g @anthropic-ai/claude-code

API 키 설정하기

내장된 claude 샌드박스 타입은 키를 자동으로 설정해 주지만, 일반 셸에서는 Claude Code가 Docker의 자격 증명 프록시에서 API 키를 가져오도록 지정해야 합니다:

mkdir -p ~/.claude && cat > ~/.claude/settings.json <<'EOF'
{
  "apiKeyHelper": "echo proxy-managed",
  "defaultMode": "bypassPermissions",
  "bypassPermissionsModeAccepted": true
}
EOF

apiKeyHelper는 Claude Code가 echo proxy-managed를 실행해 키를 가져오게 합니다. 샌드박스의 네트워크 프록시가 외부 API 호출을 가로채어 이 sentinel 값을 실제 Anthropic 키로 교체해 주므로, 실제 키는 샌드박스 내부에 존재하지 않습니다.

NanoClaw 복제 및 의존성 설치하기

cd ~/workspace
git clone https://github.com/shelajev/nanoclaw.git
cd nanoclaw
npm install

Claude 실행 및 NanoClaw 설정하기

NanoClaw는 초기 설정을 위해 Claude Code를 사용합니다—WhatsApp 인증, 데이터베이스, 컨테이너 런타임 등을 구성합니다:

claude

Claude가 시작되면 /setup을 실행하고 프롬프트에 따라 진행합니다. Claude가 WhatsApp QR 코드를 스캔하고 나머지 설정을 안내해 줍니다.

NanoClaw 시작하기

npm start

이제 NanoClaw가 실행되어 샌드박스 내부에서 WhatsApp 메시지를 수신 대기합니다.

샌드박스 관리

# List all sandboxes
docker sandbox ls

# Stop the sandbox (stops NanoClaw too)
docker sandbox stop nanoclaw

# Start it again
docker sandbox start nanoclaw

# Remove it entirely
docker sandbox rm nanoclaw

또 무엇을 실행할 수 있을까요?

셸 샌드박스는 NanoClaw에만 국한된 것이 아닙니다. Linux에서 실행되고 AI API와 통신하는 모든 것이 적합합니다:

  • Claude Agent SDK 또는 기타 AI 에이전트(Claude Code, Codex, GitHub Copilot, OpenCode, Kiro 등)로 구축된 맞춤형 에이전트.
  • AI 기반 봇 및 자동화 스크립트.
  • 호스트에서 실행하고 싶지 않은 실험용 도구.

패턴은 언제나 동일합니다: 샌드박스를 만들고, 필요한 것을 설치한 뒤, 프록시를 통해 자격 증명을 구성하고, 실행합니다.

docker sandbox create --name my-shell shell ~/my-workspace
docker sandbox run my-shell
0 조회
Back to Blog

관련 글

더 보기 »