C.W.K.
Stream
Lesson 08 of 10 · published

Sandbox 컨테이너

~16 min · gemini, sandbox, container, docker

Level 0🌱 입문자
0 XP0/70 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

기본 컨테이너 기반 격리

Gemini 의 sandbox 가 Claude Code 또는 Codex 보다 무거워 — 진짜 컨테이너 (Docker / Podman) 안에서 에이전트 run. --sandbox 가 working directory 에 scope 된 컨테이너 spin up; 에이전트가 안에 write 가능하지만 파일 변경이 세션 끝나거나 on demand 일 때만 sync back.

트레이드: 무거운 setup (컨테이너 런타임 필요) + 진짜 OS-레벨 격리. 에이전트가 컨테이너 escape 절대 X; /etc, ~/.ssh, working directory 밖 filesystem 에 뭐 해도 상관 X.

-e 통한 도구 제외: gemini --sandbox -e "WriteFile,RunShellCommand" 가 컨테이너 안에서도 특정 도구 disable. sandbox 켜져도 "read-only audit" 세션에 유용.

Code

Run in a sandbox·bash
# Default — no sandbox, agent runs in your shell
gemini

# Sandbox — Docker container
gemini --sandbox

# With tool exclusions even inside the sandbox
gemini --sandbox -e "WriteFile,RunShellCommand"

# Check container status
docker ps --filter "label=gemini.session"

# Configure default in settings
# ~/.gemini/settings.json
{ "sandbox": { "default": true, "image": "gemini-sandbox:latest" } }
Custom sandbox Dockerfile·dockerfile
FROM node:20-slim

# Pre-install tools the agent might need
RUN apt-get update && apt-get install -y --no-install-recommends \
      git curl ripgrep jq python3 \
    && rm -rf /var/lib/apt/lists/*

# Pre-install Gemini's expected runtime
RUN npm install -g @google/gemini-cli

# Non-root user for additional safety
RUN useradd -m -s /bin/bash agent
USER agent
WORKDIR /workspace

ENTRYPOINT ["gemini"]

External links

Exercise

sandbox 컨테이너 안에서 Gemini 세션 run. destructive 한 거 시도 (~/.ssh 에 write, /etc 수정) — 차단 확인. 평소 필요한 도구 가진 커스텀 sandbox image 빌드.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.