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.
| Risk | Düz terminal | Docker kapsayıcısı |
|---|---|---|
| Proje dışındaki dosyaları okur | Evet | Yalnızca bağladıklarını |
| SSH anahtarlarını ve kimlik bilgilerini okur | Evet | Hayır, bağlamadıkça |
| Proje dışındaki dosyaları siler | Mümkün | Ulaşamaz |
| Makinene global araç kurar | Mümkün | Yalnızca kapsayıcıda, çıkınca gider |
| Projedeki dosyaları değiştirir ya da siler | Mümkün | Yine mümkün |
| İnternete çıkar | Evet | Evet, 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:
--rm, Claude Code çıkınca kapsayıcıyı siler.--user, kendi kullanıcı kimliğinle çalıştırır; projedeki yeni dosyalar root’a ait olmaz.-v "$PWD":/workprojeyi bağlar, diskinden başka hiçbir şeyi değil.- 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
- Docker Desktop, Colima ya da OrbStack’i başlat.
- AgentVera’da bir proje aç ve bir Claude Code ya da Codex ajanı ekle.
- 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.
- 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
| Konu | AgentVera ne yapar |
|---|---|
| Proje dosyaları | Proje klasörünü bağlar (worktree’de deposunu da) |
| Oturum, devam, istatistik | CLI’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ği | macOS 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ştirme | no-new-privileges, süreç sınırı ve bazı Linux yetkilerinin kaldırılması |
| Gizli değerler | Ortam 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:
- Ajanı kendi git worktree’sinde oluştur; değişiklikleri ayrı bir dalda kalsın.
- Docker kapsayıcısında çalıştır kutusunu işaretle.
- İşe ne kadar güvendiğine göre Otomatik ya da Tam yetki seç.
- 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.