Program
Otonom Yapay zeka kodlama aracıları oldukça güçlüdür. Dosya sisteminizde gezinebilir, kabuk komutları çalıştırabilir, commit atabilir ve dosyaları değiştirebilirler; hem de sizin tek satır kod yazmanıza gerek kalmadan. Ancak bu güç, gerçek bir soruyu da beraberinde getirir: Bir şeyler ters giderse ne olur? Aracı dokunmaması gereken bir yapılandırma dosyasını değiştirirse ya da sisteminizle çakışan bir paketi yüklerse?
Üretim odaklı geliştiricilerin vardığı cevap çoğunlukla Docker’dır; benim de, özellikle Claude Code’un projeme ait .env dosyasını “kullanılmıyor gibi göründüğü” için sağ olsun “temizlediği” bir oturumdan sonra tekrar tekrar döndüğüm cevap bu oldu. (Kullanılmıyor değildi.)
Container’lar, aracı ile ana makineniz arasında keskin bir sınır sunar; bu sınır, aracıların gözetimsiz çalışmasını endişe yerine güvenli hissettiren unsurdur.
Bu eğitimde, Claude Code’u Docker içinde çalıştırmayı adım adım anlatacağım: minimal bir temel imaj oluşturmaktan Docker Compose ile çoklu servisli bir uygulamayı orkestre etmeye kadar. Sonunda, herhangi bir projede kullanabileceğiniz tekrarlanabilir ve güvenli bir iş akışına sahip olacaksınız.
En yeni Anthropic modelleriyle ilgilenenler için Claude Opus 4.6 ve Claude Sonnet 4.6 rehberlerimizi okumanızı öneririm.
Claude Code Docker ile Nasıl Entegre Olur
Docker’ın neden Claude Code için bu kadar doğal bir eşleşme olduğunu anlamak için, her aracın aslında ne yaptığını kısaca hatırlamak faydalı olacaktır.
Claude Code, Anthropic’in Mayıs 2025’te genel kullanıma sunduğu komut satırı tabanlı aracılık kodlama aracıdır. Terminalinizde çalışır, kod tabanınızı okur ve doğal dil istemleriyle (kod iyileştirme, test yazma, git iş akışlarını yönetme) görevleri yerine getirir. Kapsamlı Claude Code 2.1 Eğitimi ihtiyacınız olan her şeyi kapsar.
Docker, uygulamaları ana sistem çekirdeğini paylaşan ancak süreç ve dosya sistemi sınırlarını sıkı tutan hafif, yalıtılmış container’larda paketleyip çalıştırmayı sağlayan bir platformdur. Docker’a tamamen yenilseniz, ücretsiz Play with Docker platformuna dair rehberimizi inceleyip orada denemeler yapmanızı öneririm.
Claude Code’un çalışması için bir ortama ihtiyacı vardır. Docker ise tekrarlanabilir ve atılabilir bir ortam sağlar. Bu birleşim güçlüdür; ancak ondan en iyi şekilde yararlanmak için yürütme modelini, güvenlik varsayılanlarını ve durumunuza uygun dağıtım yaklaşımını anlamanız gerekir.
Container mimarisi ve yürütme akışı
Bir container içinde çalışan Claude Code oturumunun, istek düzeyinde gerçekte nasıl çalıştığıyla başlayalım.
- İstemi ana makinenizdeki terminalden verirsiniz.
- Docker, önceden kurulu Claude Code CLI’a sahip ve çalışma alanınızın bir hacim olarak bağlandığı container’ı başlatır.
- Claude Code, bu bağlanan hacimden dosyaları okur, kod tabanı hakkında muhakeme eder, komutları container’ın yalıtılmış süreç alanında yürütür ve çıktıyı tekrar bağlanan hacme yazar.
- Oturum sona erdiğinde, container’ın geçici dosya sistemi (bağlı hacmin dışındaki her şey) atılır.
Buradaki temel ayrım, geçici durum ile kalıcı durum arasındadır. Container’a yazılan ancak bağlanan hacmin dışında kalan her şey temizlikte silinir. Ana makinede yaşayan ve içeri bağlanan çalışma alanınız ise kalır.
Bu, geçici bağımlılıkların, derleme çıktılarının ve araç kurulumlarının yok olacağı; ancak gerçek proje dosyalarınızın Claude’un bıraktığı gibi aynen kalacağı anlamına gelir. Bu ayrımı gerçekten güven verici buluyorum: Bunu anlamadan önce aracı oturumlarını tedirginlikle izlerdim. Artık bir görevi başlatıp kahve almaya gidiyorum.
Güvenlik modelleri ve güvenli varsayılanlar
Yürütme akışını akılda tutarak, Docker’ın yalıtımının gerçekte neleri koruduğunu ve neleri korumadığını netleştirmekte fayda var.
Dosya sistemi yalıtımı başlıca güvenlik kazanımıdır. Claude Code yalnızca açıkça bağladığınız yollardaki dosyaları okuyup yazabilir. Onları container’a bağlamazsanız, SSH anahtarlarınız, ~/.aws kimlik bilgileriniz, ana makine ortam değişkenleriniz ve sistem yapılandırma dosyalarınız aracı için görünmezdir; siz bilerek ortaya çıkarmadığınız sürece. Ancak bu koruma, bağlamalarınızı dikkatli yapılandırdığınızda geçerlidir.
Kritik bir kural: Ana makinedeki Docker soketini (/var/run/docker.sock) asla Claude Code container’ına bağlamayın. Aracı, ana makinenizdeki Docker daemon’ıyla konuşabilirse ayrıcalıklı container’lar başlatabilir, kum havuzundan tamamen kaçabilir ve makinenizde root düzeyinde erişim elde edebilir.
Bu, bilinen bir ayrıcalık yükseltme yoludur ve iyi bir gerekçesi yoktur. Topluluktaki bazı Dockerfile’larda aracının “container’ları yönetmesine” izin vermek için bunun önerildiğini gördüm; her görüşümde yazara sert bir mesaj göndermek istiyorum.
Doğru dağıtım yolunu seçmek
Güvenlik varsayılanlarının ötesinde, kod yazmadan önce verilmesi gereken bir karar daha var: Hangi dağıtım modeli kullanım senaryonuza uyuyor? Üç ana seçenek var ve bunlar birbirinin yerine geçmez.
|
Dağıtım Yöntemi |
En Uygun Olduğu Durum |
Ana Taviz |
|
Docker kum havuzu (tek container) |
Yalıtılmış, tek seferlik aracı görevleri |
Servisten servise ağ iletişimi yok |
|
Docker Compose |
Geliştirmede çoklu servisli uygulamalar |
Daha fazla kurulum, daha geniş saldırı yüzeyi |
|
Devcontainer’lar |
Ekip genelinde standartlaştırılmış ortamlar |
VS Code veya uyumlu bir IDE gerektirir |
Çoğu görev için (aracıyı tek bir depo üzerinde çalıştırmak, bir betiği hata ayıklamak, bir modülü yeniden düzenlemek) düz bir Docker kum havuzu en güvenli varsayılandır.
Claude Code’un çalışan bir veritabanı, API veya ön yüz servisiyle etkileşime girmesi gerektiğinde Docker Compose mantıklıdır.
Devcontainer’lar, önceden yapılandırılmış IDE uzantılarına sahip ekip genelinde standart ortamlar için doğru seçimdir. Özellikle, resmi Anthropic referans devcontainer’ı, giden bağlantıları güvenilir bir izin listesiyle sınırlayan yerleşik bir güvenlik duvarı içerir; bu yalıtım, tamamen gözetimsiz çalışma için --dangerously-skip-permissions ile Claude Code’u güvenle çalıştırmayı mümkün kılar.
Bu eğitimde hem tek container’lı kum havuzunu hem de bir Compose kurulumunu ele alacağız.
Claude Code İçin Bir Docker Container Kurma
Mimari ve dağıtım seçenekleri netleştiğine göre, kod yazmadan önce ortamın doğru yapılandırıldığından emin olalım. Bu adımın sayamayacağım kadar çok kez atlandığını gördüm ve bu tür eğitimlerin yarıda kalmasının en yaygın nedenidir.
Sistem ve yazılım gereksinimleri
İlk docker build öncesinde ihtiyacınız olan her şey şunlardır:
-
Docker Desktop (macOS veya Windows) ya da Docker Engine (Linux) ve daemon’ın aktif olarak çalışması. macOS ve Windows’ta sanallaştırma BIOS/üretici yazılımı ayarlarında etkin olmalıdır. Linux’ta kullanıcıyı
dockergrubunasudo usermod -aG docker $USERile ekleyin ya da her Docker komutunun başınasudokoyun. -
Claude Code CLI bir npm paketi olduğundan ana makinenizde Node.js v18 veya üstü.
node --versionile doğrulayın. -
Claude Console üzerinden oluşturabileceğiniz bir Anthropic API anahtarı.
Daha ileri gitmeden önce kısa bir sağlık kontrolüyle Docker’ın düzgün çalıştığını doğrulayın:
docker run --rm hello-world
Hello from Docker! görürseniz daemon doğru yanıt veriyor demektir; devam edebilirsiniz.
Kimlik doğrulama ve ortam değişkenleri
Daemon sağlıklıysa sırada kimlik bilgileri var. Anthropic API anahtarınızı çalışma zamanında bir ortam değişkeni olarak enjekte etmek, container içinde etkileşimli oturum açmaktan belirgin derecede daha güvenlidir.
Bunu zor yoldan öğrendim: Etkileşimli oturumlar kimlik bilgilerini, siz çoktan unutmuş olsanız bile disk üzerinde kalıcı olan container katmanlarına veya kabuk geçmişi dosyalarına gömebilir.
Doğru desen, anahtarı çalışma zamanında -e ile geçirmekten ibarettir:
docker run --rm -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" my-claude-image
$ANTHROPIC_API_KEY’i ana makine kabuğumdan referans aldığıma dikkat edin. Anahtar asla Dockerfile’a yazılmaz, sürüm kontrolüne işlenmez ve hiçbir imaj katmanında görünmez. Bunu bir kez kabuk profilinizde (~/.zshrc veya ~/.bashrc) ayarlayın; o andan itibaren her container çalıştırmasına temiz şekilde akar.
Çalışma alanı başlatma
Kimlik doğrulamayı hallettikten sonra son kurulum adımı temiz bir çalışma alanı oluşturmaktır. Aracıyı mevcut bir projeye yönlendirmek yerine her aracı oturumu için ayrı bir dizin oluştururum; böylece aracının, dokunmasını istemediğiniz komşu koda dalma riskini ortadan kaldırırsınız.
mkdir ~/claude-docker-tutorial
cd ~/claude-docker-tutorial
echo "# My Project" > README.md
echo "def hello(): return 'world'" > app.py
Bu dizini temiz tutun. Gerçek .env dosyanızı veya herhangi bir kimlik bilgisini buraya kopyalamayın. Çalışma alanı yalnızca aracının üzerinde çalışmasını istediğiniz kodu içermeli, başka hiçbir şeyi değil. Her şey hazırsa, derlemeye geçebiliriz.
Claude Code’u Docker İçinde Çalıştırma
Ortam yapılandırıldı ve kavramlar netleşti; şimdi derleme zamanı. Bu bölüm adımları ele alıyor: önce minimal tek container’lı bir imaj, ardından çalışan bir kum havuzu oturumu ve son olarak tam bir çoklu servis Compose yığını. Her adım bir öncekine dayanır; bu yüzden önden atlamadan sırayla ilerlemenizi öneririm.
1. Temel container imajını oluşturma
Bu bölümdeki her şey, daha önce tartıştığımız güvenlik ilkeleri üzerine kurulur. Aşağıda bu ilkeleri uygulayan, Claude Code CLI’ı ince bir Node.js tabanlı imaj üzerine kuran minimal bir Dockerfile var:
FROM node:20-slim
# Create a non-root user for safer execution
RUN useradd -m -u 1001 claude
# Install Claude Code CLI globally
RUN npm install -g @anthropic-ai/claude-code
# Set the working directory
WORKDIR /workspace
# Switch to non-root user
USER claude
ENTRYPOINT ["claude"]
Burada bazı tasarım kararlarını açıklamaya değer. node:20-alpine yerine node:20-slim kullanıyorum; çünkü Alpine, bazen yerel npm paketleriyle uyumluluk sorunlarına neden olabilen musl libc kütüphanesini kullanır.
Bu sorunu ilk denememde Alpine ile birebir yaşadım: Claude Code CLI sorunsuz kuruldu ancak ilk çalıştırmada gizemli bir bağlayıcı hatasıyla çöktü ve bunun musl’a uzandığını anlamam bir saatimi aldı.
slim varyantı Debian tabanlıdır: hafif ve güvenilirdir, bu tür dertleri çıkarmaz. Ayrıca özel bir claude kullanıcısı oluşturup entrypoint’ten önce ona geçiyorum; böylece aracı süreci root ayrıcalıkları olmadan çalışır ve container içinde bile yapabilecekleri sınırlanır.
İmajı şu komutla derleyin:
docker build -t claude-code:latest .
İlk derlemede Docker taban imajı çeker ve CLI’ı kurar. Dockerfile değişmeden yapılan sonraki derlemelerde her katmanın yanında “CACHED” görürsünüz; böylece taban kurulduktan sonra yeniden derlemeler neredeyse anında tamamlanır.
2. Yalıtılmış bir kum havuzu oturumu başlatma
İmaj hazır olduğuna göre ilk gerçek oturumu çalıştırma zamanı.
Salt okunur işlemler
Dosyaları listeleme veya özetleme gibi salt okunur görevler için temel komut yeterlidir:
docker run --rm \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
-v $(pwd):/workspace \
claude-code:latest \
"List the files in this workspace and describe what each one does."
-v $(pwd):/workspace geçerli dizininizi container’a bağlar; böylece komut, herhangi bir proje dizininden çalışır. --rm bayrağı, container çıkınca otomatik olarak kaldırılmasını sağlar.
Yazma işlemleri
Yazma işlemleri iki ek bayrak gerektirir.
-u $(id -u):$(id -g) bayrağı, ana makine kullanıcınızın UID ve GID değerlerini container’a geçirir; böylece claude süreci, bağladığınız dosyalara yazma iznine sahip olur. Bu olmadan, container’daki claude kullanıcısı ile ana makine dosya sahipliği eşleşmediği için salt okunur dosya sistemi hatası alırsınız.
--dangerously-skip-permissions bayrağı, interaktif olmayan şekilde container içinde çalışırken gerekli olan Claude Code’un etkileşimli onay istemlerini atlar. Bunu güvenli kılan şey Docker sınırının kendisidir.
docker run --rm \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
-v $(pwd):/workspace \
-u $(id -u):$(id -g) \
claude-code:latest \
--dangerously-skip-permissions \
"Add a docstring to the hello function in app.py."

Claude Code Docker yazma işlemi
Ardından yerel dosyanızı kontrol edin: cat app.py. Docstring’i görüyorsanız hacim bağlaması iki yönlü çalışıyor demektir ve çoklu servis kurulumuna geçmeye hazırsınız.
3. Çoklu servisli bir uygulamayı orkestre etme
Tek container’lı kum havuzu yalıtılmış görevler için iyi çalışır; ancak gerçek geliştirme genellikle eşzamanlı çalışan birden fazla servisi içerir. Docker Compose’un hak ettiği yeri burada alır.
Aşağıdaki yapılandırma, Claude Code aracısını bir web servisi ve PostgreSQL veritabanıyla ilişkilendirir; bu, birçok arka uç projesi için temsilî bir kurulumdur:
services:
claude:
build: .
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
volumes:
- ./workspace:/workspace
depends_on:
db:
condition: service_healthy
networks:
- app-network
web:
image: python:3.12-slim
working_dir: /app
volumes:
- ./workspace:/app
command: python -m http.server 8080
ports:
- "8080:8080"
networks:
- app-network
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: appdb
POSTGRES_USER: user
POSTGRES_PASSWORD: password
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d appdb"]
interval: 5s
timeout: 3s
retries: 5
networks:
- app-network
networks:
app-network:
driver: bridge
version alanının dahil edilmediğine dikkat edin; modern Docker Compose’ta geçersizdir ve eklenirse uyarı üretir.
Dikkate değer iki ayrıntı daha var:
Birincisi, claude servisi, alt dizin yerine .:/workspace (geçerli dizin) bağlar. ./workspace kullanmak ayrı bir alt klasör gerektirir ve aracı boş bir çalışma alanı görür.
İkincisi, DATABASE_URL açıkça geçirilir; böylece aracı Postgres’e nasıl erişeceğini bilir. Bunu olmadan Claude’un elinde bir bağlantı dizesi olmaz ve sizden isteyecektir.
user: "${UID}:${GID}" satırı, bağımsız docker run komutlarında kullandığımız ana makine UID/GID geçersiz kılmasını uygular; böylece dosya yazma işlemleri doğru çalışır. Çalıştırmadan önce her ikisini de dışa aktarın:
export UID=$(id -u) GID=$(id -g)
claude servisinin kalıcı bir command’ı yoktur; bu nedenle web ve db’den farklı olarak sürekli çalışması amaçlanmamıştır. Önce destekleyici servisleri başlatın, ardından Claude’u ihtiyaç halinde docker compose run ile çağırın:
# Veritabanı ve web servisini başlatın
docker compose up -d web db
# Tek seferlik bir Claude görevi çalıştırın
docker compose run --rm \
claude \
--dangerously-skip-permissions \
"Check the database connection and summarize the schema in README.md."

Docker Compose ile Claude Code
docker compose up -d web db ile önce destekleyici servisleri başlatın, ardından docker compose logs -f ile günlüklerini izleyin. condition: service_healthy ile birlikte depends_on’a dikkat edin.
Bunu erken bir projede atlamıştım ve Postgres hazır olmadan Claude’un başladığını fark edene kadar 20 dakika veritabanı bağlantı hatalarının peşinden koştum. Sağlık kontrolü hiçbir şeye mal olmaz ve tam da bu baş ağrısını önler.
4. Oturum temizliğini yönetme
Oturumunuz tamamlandığında, temizlik en az kurulum kadar önemlidir. Sahipsiz container’lar bellek tüketir ve gelecekteki çalıştırmaları etkiler; deneyimime göre bu adım, bir şeyler garipleşene kadar çoğu geliştiricinin atladığı kısımdır.
En sık kullanacağınız komutlar ve hangisinde hangisini tercih edeceğiniz:
|
Komut |
Ne yapar |
Ne zaman kullanılır |
|
|
Yığındaki tüm container’ları durdurur ve kaldırır |
Her Compose oturumundan sonra |
|
|
Tüm durdurulmuş container’ları kaldırır |
Bağımsız çalıştırmada --rm eklemeyi unuttuysanız |
|
|
Container’ları, ağları ve adlandırılmış hacimleri kaldırır |
Tam sıfırlama, veritabanı durumunu siler |
|
|
Çalışan container’ları listeler |
Hâlâ aktif olan bir şey kalmadığını doğrulamak için |
The -v bayrağına sahip docker compose down komutuna dikkat edin. Bu, adlandırılmış hacimleri siler; yani Postgres’te biriktirdiğiniz veritabanı verileri gider. Bunu yalnızca gerçekten temiz bir başlangıç istediğimde kullanırım. Aksi halde tek başına docker compose down yeterlidir.
Claude Code Docker Entegrasyonları ve Sorun Giderme
Temel iş akışı sorunsuz çalışırken, bunu nasıl genişleteceğimize ve bir şeyler bozulduğunda nasıl hata ayıklayacağımıza bakalım.
Yerel modeller ve uzantılarla entegrasyon
Claude Code, ANTHROPIC_BASE_URL aracılığıyla, Anthropic ile uyumlu herhangi bir yerel uç noktaya yönlendirmeyi destekler. Docker Desktop’a yerleşik Docker Model Runner tam da böyle bir API sunar ve entegrasyonu Docker ekosistemine yerel kılar.
Bir model çekin ve Claude Code’u yerel uç noktaya yönlendirin:
docker model pull ai/smollm2
ANTHROPIC_BASE_URL=http://localhost:12434 claude --model ai/smollm2 "List the files of the repository."
Bu, daha önce ele aldığımız kum havuzu container yaklaşımından farklı bir desendir. Burada Claude Code ana makinenizde çalışır ve çıkarım Docker Model Runner üzerinden yerelde kalır; yani hiçbir API çağrısı makinenizi terk etmez.
Yerel modellere ek olarak, Claude Code’un erişim alanını MCP (Model Context Protocol) sunucuları aracılığıyla genişletebilirsiniz. Buna aşina değilseniz, MCP Rehberi başlangıç için harika bir kaynaktır.
Docker’ın MCP Toolkit’i GitHub, Jira, Supabase ve daha fazlasını kapsayan 200’ün üzerinde, container’laştırılmış hazır MCP sunucusu sağlar; böylece Claude Code’a ham API kimlik bilgilerini açığa çıkarmadan bu araçlara yetkili erişim verebilirsiniz.
Birlikte ele alındığında, bu iki genişletme noktası hem çıkarımın nerede gerçekleştiği hem de aracının hangi harici servislere ulaşabildiği üzerinde anlamlı bir kontrol sunar.
Derleme performansını iyileştirme
Dockerfile’ınız büyüdükçe derleme süresi darboğaz olabilir. Çok aşamalı derlemeler, kurulumu çalışma zamanı imajından ayırarak bunu çözer:
# Build stage
FROM node:20-slim AS builder
RUN npm install -g @anthropic-ai/claude-code
# Runtime stage
FROM node:20-slim
COPY --from=builder /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=builder /usr/local/bin/claude /usr/local/bin/claude
RUN useradd -m -u 1001 claude
USER claude
WORKDIR /workspace
ENTRYPOINT ["claude"]
Katman sırası en az yapı kadar önemlidir ve bunu itiraf ettiğimden daha uzun süre yanlış yaptım.
Nadiren değişen komutlar (sistem paketlerinin kurulumu gibi) üste; sık değişenler (kaynak dosyaların kopyalanması gibi) alta konur. Bu, önbellek isabetlerini maksimize eder ve 30 saniyelik yeniden derlemeleri neredeyse anında hale getirir.
Yaygın entegrasyon hatalarını hata ayıklama
İyi yapılandırılmış bir kurulumda bile sorunlar çıkar. En sık karşılaştığım sorunlar için tekrarlanabilir bir hata ayıklama döngüsü burada. Önce belirti, ardından çalıştırılacak komut:
-
Ağ çıkışı engelli: Claude Code, Anthropic API’sine ulaşamıyor. Giden erişimi doğrulamak için
docker run --rm alpine wget -qO- https://api.anthropic.comçalıştırın. Bu başarısızsa, proxy ayarları içindocker network inspect bridgekontrol edin. -
Hatalı hacim bağlamaları: Claude Code dosyaları bulamadığını bildiriyor.
docker run --rm -v $(pwd):/workspace alpine ls /workspaceçalıştırın. Boş listeleme yolunuzun hatalı olduğu anlamına gelir. Her şeyden önce dizinin varlığını doğrulayın. -
Bayat derleme önbelleği: Dockerfile’ı güncellediniz ancak davranış değişmedi. Tam yeniden derleme için
docker build --no-cache -t claude-code:latest .çalıştırın. -
Compose’ta servisler arası bağlantı hataları: Bir servis diğerine ulaşamıyor. Servisler
localhostüzerinden değil, servis adlarıyla (db,web) haberleşir. Erişilebilirliği test etmek içindocker compose exec web ping dbçalıştırın. Ping başarısızsa servisler aynı ağda değildir.
Sonuç
Claude Code’u Docker içinde çalıştırmak size gerçekten değerli bir şey sunar: Otonom bir aracının serbestçe çalışmasına izin verme özgürlüğü; dokunabileceklerinin ise kesin sınırlarla belirlenmiş olduğunu bilirsiniz.
Bu eğitimde, minimal ve root olmayan bir container imajı oluşturmayı, çalışma alanı hacimlerini yönetmeyi, Docker Compose ile çoklu servisli uygulamaları orkestre etmeyi ve en yaygın entegrasyon hatalarını teşhis etmeyi anlattım.
Kurulumu doğru yapmak bir öğleden sonramı aldı ve aracı destekli geliştirmeye yaklaşımımı tamamen değiştirdi. Artık her adımı izlemeden tüm görevleri devrediyorum ve bunu mümkün kılan şey Docker sınırı.
Buradan iki yönü keşfetmeye değer:
İlk olarak, ekibiniz için devcontainer şablonlarını inceleyin. GitHub’daki Claude Code referans devcontainer’ı, giden bağlantıları güvenilir etki alanlarıyla sınırlayan önceden yapılandırılmış bir güvenlik duvarı içerir. İkinci olarak, Claude Code’a mevcut araçlarınıza (GitHub, veritabanları, proje yönetim sistemleri ve daha fazlası) yapılandırılmış erişim vermek için Docker MCP Toolkit ile deney yapın.
Son olarak, taban imajlarınızı periyodik olarak güncellemeyi hatırlatıcıya ekleyin. Docker imajları zamanla güvenlik açıkları biriktirir; hızlı bir docker pull node:20-slim ardından yeniden derleme yalnızca dakikalar alır.
Yapay zeka uygulamaları geliştirmekle ilgileniyorsanız, AI Engineering with LangChain yetkinlik yolumuza kaydolmanızı şiddetle öneririm. İçerdiği dersler yapay zekâ yerelidir; bu sayede, tam seviyenizden sizi alan ve hedeflerinize kendi temponuzda ulaşmanıza yardımcı olan kişisel bir öğretmene sahip olursunuz.
Claude Code Docker SSS
Claude Code’u Docker Compose ile nasıl entegre edebilirim?
Compose dosyanıza bir claude servisi ekleyin; API anahtarınızı ortam değişkeni olarak geçin ve proje dizininizi bir hacim olarak bağlayın. Web veya veritabanı servisleriniz gibi sürekli çalıştırmak yerine, ihtiyaca göre --rm ile docker compose run claude kullanarak çağırın.
Claude Code, bir container içinde izin ve güvenlik konularını nasıl ele alır?
Varsayılan olarak, Claude Code dosya yazmadan önce onay ister. Container içinde bu istemlere etkileşimli yanıt verilemeyeceği için --dangerously-skip-permissions geçirirsiniz. Bunu güvenli kılan Docker sınırının kendisidir. Aracı yalnızca bağladığınız çalışma alanındaki dosyalara dokunabilir.
Claude Code yalnızca Anthropic modelleriyle mi yoksa özel modellerle de kullanılabilir mi?
Claude Code, ANTHROPIC_BASE_URL aracılığıyla özel çıkarım uç noktalarını destekler. ai/smollm2 gibi modelleri tamamen yerel makinenizde, Docker Model Runner üzerinden; ana makinenizi terk eden hiçbir API çağrısı olmadan çalıştırabilirsiniz.
Docker’da büyük bir kod tabanıyla Claude Code kullanımı için en iyi uygulamalar nelerdir?
Aracının yalnızca ihtiyaç duyduğu alt dizini bağlayın; tüm depoyu değil. Proje yapınız hakkında aracıya bağlam vermek için bir CLAUDE.md dosyası kullanın ve Claude Code’un işe başlamadan önce kod tabanını dizine eklemesi için oturum içinde /init komutunu çalıştırın.
Karmaşık mimarilerle Claude Code kullanmanın sınırlamaları nelerdir?
Başlıca sınırlama bağlam penceresi boyutudur. Claude Code yalnızca etkin bağlamına sığan kısım hakkında muhakeme edebilir; bu nedenle çok büyük kod tabanlarında görevleri belirli modüllerle sınırlamak gerekir. Çoklu servis kurulumlarında, servislerin aynı Docker ağında olması ve claude servisine ihtiyaç duyduğu veritabanı veya API bağlantı dizeleri için açık ortam değişkenleri verilmesi gerekir.
Martin Data Solutions’ın Kurucusu ve Serbest Çalışan Veri Bilimci, ML ve AI Mühendisi olarak Regresyon, Sınıflandırma, NLP, LLM, RAG, Sinir Ağları, Topluluk Yöntemleri ve Bilgisayarlı Görü alanlarında geniş bir portföy sunuyorum.
- Veri temizleme, analitik, modelleme ve AWS ile GCP’de dağıtımı kapsayan uçtan uca birçok ML projesini başarıyla geliştirerek etkili ve ölçeklenebilir çözümler sundum.
- Çeşitli sektör kullanım senaryoları için Streamlit ve Gradio ile etkileşimli ve ölçeklenebilir web uygulamaları geliştirdim.
- Veri bilimi ve analitik alanlarında öğrencilere eğitim verdim ve mentorluk yaparak kişiselleştirilmiş öğrenme yaklaşımlarıyla mesleki gelişimlerini destekledim.
- Kurumsal gereksinimlere uyarlanmış geri getirme destekli üretim (RAG) uygulamaları için kurs içerikleri tasarladım.
- MLOps, vektör veritabanları ve LLM’ler gibi konuları ele alan, yüksek etki yaratan yapay zeka ve ML teknik blogları yazdım ve önemli etkileşim sağladım.
Üstlendiğim her projede CI/CD, kod linting’i, biçimlendirme, model izleme, deney takibi ve sağlam hata yönetimi gibi yazılım mühendisliği ve DevOps’taki güncel uygulamaları hayata geçiririm. Tam kapsamlı çözümler sunmaya; veri içgörülerini, işletmelerin büyümesine yardımcı olan ve veri bilimi, makine öğrenimi ile yapay zekâdan en iyi şekilde yararlanan pratik stratejilere dönüştürmeye kararlıyım.

