Claude Code’u Docker içinde çalıştırmak: korumalı alan

Claude Code’u Docker içinde çalıştır, ajan yalnızca proje klasörünü görsün: elle docker run tarifi, sınırları ve AgentVera’da tek kutuyla açılan kapsayıcı.

Solviera Teknoloji 5 dk okuma

Claude Code’u Docker içinde çalıştırmak için onu yalnızca proje klasörünü bağlayan bir kapsayıcıda başlat: ajan orada rahatça çalışır, diskinin geri kalanı ise erişiminin dışında kalır. Bunu bir imaj ve uzun bir docker run satırıyla elle yapabilirsin; ya da AgentVera’da tek bir kutuyu işaretlersin ve aynı kapsayıcı oturum, git kimliği ve dosya sahipliği ayarlanmış olarak senin için kurulur.

Bu rehberde kapsayıcının seni neye karşı koruduğunu (ve neye karşı korumadığını), elle kurulumu ve AgentVera’nın Docker ajanlarının nasıl çalıştığını anlatıyoruz.

Kapsayıcı neyi korur, neyi korumaz

Kodlama ajanı komutları senin kullanıcınla çalıştırır. Korumalı alan yoksa senin okuyabildiğin her dosyayı okuyabilir: diğer depolar, ~/.ssh, bulut kimlik bilgileri, ayar dosyaları. Çoğu zaman sorun olmaz. Risk, ara sıra çıkan hatalı komutta, yanlış giden bir temizlikte ya da bir web sayfasına veya bağımlılığın README’sine gizlenmiş prompt injection’dadır.

RiskDüz terminalDocker kapsayıcısı
Proje dışındaki dosyaları okurEvetYalnızca bağladıklarını
SSH anahtarlarını ve kimlik bilgilerini okurEvetHayır, bağlamadıkça
Proje dışındaki dosyaları silerMümkünUlaşamaz
Makinene global araç kurarMümkünYalnızca kapsayıcıda, çıkınca gider
Projedeki dosyaları değiştirir ya da silerMümkünYine mümkün
İnternete çıkarEvetEvet, varsayılan olarak

İki satır en önemlisi. Proje klasörü hâlâ yazılabilir; sık commit’le ya da bir git worktree kullan. Docker ağı da kendiliğinden kesmez; bunu istiyorsan ek ağ kuralları gerekir. Tehditlere daha geniş bakış için yapay zekâ kodlama ajanı güvenliği yazısına bak.

Claude Code’u Docker içinde elle çalıştırmak

Elle kurulum üç parçadan oluşur: bir imaj, bir çalıştırma komutu ve oturumla ilgili bir karar.

1. CLI’lı bir imaj hazırla

Küçük bir Dockerfile yeterli:

FROM node:22-bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
      git curl ca-certificates ripgrep openssh-client less procps jq python3 \
    && rm -rf /var/lib/apt/lists/*
RUN npm install -g @anthropic-ai/claude-code
docker build -t my-claude .

Projenin derlemek ve test etmek için neye ihtiyacı varsa ekle: derleyici, veritabanı istemcisi, dil çalışma ortamı gibi.

2. Yalnızca projeyi bağlayarak başlat

docker run --rm -it --init \
  --user "$(id -u):$(id -g)" \
  -v "$PWD":/work -w /work \
  -e HOME=/home/agent --tmpfs /home/agent \
  my-claude claude

Her parça ne yapıyor:

  1. --rm, Claude Code çıkınca kapsayıcıyı siler.
  2. --user, kendi kullanıcı kimliğinle çalıştırır; projedeki yeni dosyalar root’a ait olmaz.
  3. -v "$PWD":/work projeyi bağlar, diskinden başka hiçbir şeyi değil.
  4. tmpfs üzerindeki geçici HOME, CLI’ya ayarlarını yazacak bir yer verir.

3. Oturumu ve geçmişi çöz

Geçici bir ev klasörüyle Claude Code her çalıştırmada oturumunu ve konuşmalarını unutur. Bunun yerine ayrı bir ayar klasörü bağlayabilir ya da -e ANTHROPIC_API_KEY ile bir API anahtarı geçebilirsin. Gizli değerleri -e AD=değer yerine adıyla (-e AD) geç; değer kabuk geçmişinde görünmez.

Anthropic, Claude Code için güvenlik duvarlı örnek bir devcontainer kurulumu da yayınlıyor; devcontainer kullanıyorsan Claude Code belgelerindeki ilgili bölümü oku.

Elle kurulum nerede yorar

Her yeni ajan aynı bayrakları yeniden yazmak demek. Devam etme, kullanım istatistikleri ve proje ayarları, sen bağlamadıkça kapsayıcının görmediği bir klasörde durur. ~/.gitconfig bağlanmadıkça kapsayıcıdaki commit’lerin bir adı olmaz. Aynı anda birkaç ajan çalıştırıyorsan bu komutlardan birkaçını birden idare edersin.

AgentVera ile Claude Code’u Docker içinde çalıştırmak

AgentVera, kodlama ajanı CLI’larını gerçek terminallerde yan yana çalıştıran macOS, Windows ve Linux masaüstü uygulamasıdır. Claude Code ve Codex ajanlarında ajan penceresinde Docker kapsayıcısında çalıştır kutusu var. İpucu bunu açıkça söylüyor: ajan yalnızca proje klasörünü görür; bu bilgisayardaki diğer dosyalar, programlar ve SSH anahtarları ona kapalı kalır.

Adımlar

  1. Docker Desktop, Colima ya da OrbStack’i başlat.
  2. AgentVera’da bir proje aç ve bir Claude Code ya da Codex ajanı ekle.
  3. Docker kapsayıcısında çalıştır kutusunu işaretle. İstersen İmaj, CPU ve Bellek (GB) alanlarını doldur; bellek boş kalırsa sınır yoktur.
  4. Ajanı başlat.

İlk kullanımda AgentVera kendi ajan imajını, agentvera/agent:1’i derler ve derleme çıktısını ajanın terminalinde izlersin. İmaj node:22-bookworm-slim tabanlıdır; git, ripgrep, jq, python3, make, g++ ve birkaç araç daha ile Claude Code ve Codex içerir. Kendi imajını verirsen içinde claude ya da codex komutu olmalı; makinende olmayan bir imaj çekilir.

Ardından ajan başlığında bir Docker etiketi görünür, panel de ajanın imaj adıyla birlikte bir Docker kapsayıcısında çalıştığını söyler. Var olan bir ajanı düzenleyerek kapsayıcıya alabilir ya da çıkarabilirsin; ajan yeniden başlar ve aynı konuşmayı sürdürür.

AgentVera senin için neleri ayarlar

KonuAgentVera ne yapar
Proje dosyalarıProje klasörünü bağlar (worktree’de deposunu da)
Oturum, devam, istatistikCLI’nın konuşma klasörünü bağlar; devam etme, kullanım istatistikleri ve bütçeler her zamanki gibi çalışır
Git kimliği~/.gitconfig’i salt okunur bağlar; commit’ler senin adını taşır
Dosya sahipliğimacOS ve Linux’ta senin kullanıcı kimliğinle çalışır; dosyalar root’a ait olmaz
Ev klasörütmpfs üzerinde yeni bir ev klasörü, kapsayıcı durunca gider
Sertleştirmeno-new-privileges, süreç sınırı ve bazı Linux yetkilerinin kaldırılması
Gizli değerlerOrtam değerleri adıyla geçilir; token’lar süreç listesinde görünmez
AgentVera araçlarıHook’lar ve proje haritası, pano, ajan mesajlaşması gibi MCP sunucuları çalışmaya devam eder

Ajan durunca kapsayıcı silinir. Geriye yalnızca proje klasöründeki değişiklikler kalır.

Bilmen gereken birkaç şey:

  • Ağ açık. Linux’ta kapsayıcı ana makinenin ağını kullanır; diğer sistemlerde AgentVera’nın yerel sunucularına host.docker.internal üzerinden ulaşır. Kapsayıcı dosyaları sınırlar, interneti değil.
  • macOS oturumu. Claude Code oturumunu macOS anahtar zincirinde tutar, kapsayıcı onu okuyamaz; içeride bir kez giriş yapman gerekebilir.
  • Claude in Chrome kapsayıcı içinde kullanılmaz. Playwright MCP üzerinden çalışan AgentVera tarayıcısı aynı pencerede ayrı bir seçenektir.
  • Yalnızca yerel ajanlar. SSH üzerinden çalışan uzak ajanlar kendi sunucularında çalışır ve bu seçeneği almaz.

Docker ajanları ücretsiz planın parçası. Uygulamada ayrıca kendi kapsayıcıların ve compose projelerin için bir Docker yöneticisi sayfası var; Docker özellik sayfasına bak.

Kapsayıcıyı doğru izin düzeyiyle eşleştir

Daha gevşek bir izin düzeyini makul kılan şey kapsayıcıdır. AgentVera ajanlarının üç düzeyi var: Sorsun, Otomatik ve Tam yetki. Tam yetki ipucu, hiç sormadığını ve en iyi worktree ya da kapsayıcıda kullanıldığını söyler.

Uzun bir iş için pratik bir kurulum:

  1. Ajanı kendi git worktree’sinde oluştur; değişiklikleri ayrı bir dalda kalsın.
  2. Docker kapsayıcısında çalıştır kutusunu işaretle.
  3. İşe ne kadar güvendiğine göre Otomatik ya da Tam yetki seç.
  4. Bitince birleştirmeden önce farkı gözden geçir.

--dangerously-skip-permissions bayrağını düşünüyorsan Claude Code izinlerini atlamak yazısı artılarını ve eksilerini anlatıyor; Claude Code’u gece çalıştırmak da kimsenin izlemediği bir çalışmaya kapsayıcının nasıl oturduğunu gösteriyor.

Kısa kontrol listesi

  • Kapsayıcı ev klasörünü değil, yalnızca projeyi bağlıyor.
  • Projedeki yeni dosyalar root’a değil sana ait.
  • Gizli değerler imaja gömülmüyor, adıyla geçiliyor.
  • İş commit’lenmiş ya da ajan bir worktree dalında.
  • Ağın hâlâ açık olduğunu biliyorsun ve gerekiyorsa kural ekledin.

Claude Code ve Codex’i diğer ajanlarının yanında kapsayıcıda çalıştırmak için AgentVera’yı indir ya da Docker kapsayıcısında ajan sayfasını oku.

Sık sorulanlar

Claude Code’u neden Docker içinde çalıştırayım?

Bilgisayarındaki bir ajan, kullanıcının okuyabildiği her şeyi okuyabilir: diğer projeler, SSH anahtarları, bulut kimlik bilgileri, tarayıcı verileri. Kapsayıcıda yalnızca bağladığın klasörleri görür; hatalı bir komut ya da prompt injection’ın ulaşabileceği yer çok daralır.

Docker kapsayıcısı ajanın internetini keser mi?

Varsayılan olarak hayır. Sıradan bir kapsayıcının ağ erişimi vardır. Docker dosyaları ve süreçleri sınırlar; ağı da kısıtlamak istiyorsan kendi güvenlik duvarı kurallarını ya da ağ ayarını eklemen gerekir. AgentVera’nın ajan kapsayıcıları CLI API’sine ulaşabilsin diye ağı açık bırakır.

AgentVera hangi ajanları kapsayıcıda çalıştırabiliyor?

Kendi bilgisayarında çalışan Claude Code ve Codex ajanlarını. SSH üzerinden çalışan uzak ajanlar kendi sunucularında çalışır ve bu seçeneği kullanmaz. Kapsayıcı için Docker Desktop, Colima ya da OrbStack açık olmalı.

Kapsayıcının içinde yeniden giriş yapmam gerekir mi?

Genelde hayır, çünkü AgentVera CLI’nın konuşma klasörünü kapsayıcıya bağlar. macOS’ta Claude Code oturumunu anahtar zincirinde tutar ve kapsayıcı onu okuyamaz; bu yüzden içeride bir kez giriş yapman gerekebilir.

Kapsayıcı içinde tam yetki modunu kullanmak güvenli mi?

Çıplak makineye göre çok daha güvenli; AgentVera’daki Tam yetki ipucu da bu yüzden en iyi worktree ya da kapsayıcıda olduğunu söyler. Ajan yine de proje klasöründeki dosyaları değiştirip silebilir; işini commit’le ve farkı gözden geçir.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer yazılar