Kata SUHU

Cara Setup Claude Code di Docker Container untuk Developer

23 Apr 2026

Autonomous AI coding agent seperti Claude Code mampu membaca kode, menjalankan perintah, hingga melakukan refactoring otomatis yang meningkatkan produktivitas developer. 

Namun, kemampuan ini juga membawa risiko jika terjadi kesalahan pada sistem atau environment. Untuk itu, Docker digunakan sebagai solusi agar proses tetap aman melalui container isolation. 

Nah, dalam artikel ini kita akan membahas tutorial cara menjalankan Claude Code di Docker.

Mengapa Harus Menggunakan Docker untuk Claude Code?

Claude Code Dmr Figure 1

Sebelum masuk ke teknis, penting memahami alasan utamanya.

1. Keamanan

Docker memberikan isolasi:

  • Claude hanya bisa akses file yang di-mount

  • Tidak bisa sembarangan menyentuh sistem host

  • Credential sensitif tetap aman

2. Environment Isolation

Docker memastikan Claude Code hanya bisa mengakses file yang Anda izinkan (melalui volume mount).

3. Reproducibility

  • Environment selalu konsisten

  • Bisa dijalankan di mana saja (dev, staging, production)

4. Disposable Environment

  • Jika terjadi error → container tinggal dihapus

  • Tidak merusak environment utama


Arsitektur: Cara Claude Code Bekerja di Docker

Alur sederhananya:

  1. Anda menjalankan command dari host

  2. Docker membuat container

  3. Claude Code berjalan di dalam container

  4. Workspace di-mount dari host ke container

  5. Output ditulis kembali ke workspace

  6. Container dihapus setelah selesai

Poin penting:

  • File project tetap ada

  • Dependency sementara akan hilang 


Persiapan Awal (Wajib)

Sebelum mulai, pastikan Anda sudah memiliki:

Kebutuhan

Keterangan

Docker

Docker Desktop / Docker Engine

Node.js

Minimal versi 18

API Key

Anthropic API Key

Terminal

Bash / Zsh / PowerShell

 Cek Docker Berjalan

docker run --rm hello-world

Jika muncul Hello from Docker!, berarti siap lanjut.


Setup API Key dengan Aman

Jangan pernah menaruh API key di Dockerfile.

Gunakan environment variable:

docker run --rm -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" my-claude-image

 Workspace initialization

Buat clean workspace

mkdir ~/claude-docker-tutorial

cd ~/claude-docker-tutorial

echo "# My Project" > README.md

echo "def hello(): return 'world'" > app.py

Hindari menyimpan:

  • .env

  • credential

  • data sensitif


Cara Running Claude Code di Docker

Step 1: Buat Dockerfile

Buat file Dockerfile:

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"]

 Penjelasan:

Bagian

Fungsi

node:20-slim

Base image stabil

useradd

Hindari root

npm install

Install Claude Code

WORKDIR

Folder kerja

ENTRYPOINT

Jalankan CLI

 


Step 2: Build Docker Image

Jalankan:

docker build -t claude-code:latest .

Jika berhasil, image siap digunakan.


Step 3: Menjalankan Claude Code (Read-Only)

Untuk melihat isi project:

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."

 Penjelasan parameter:

Flag

Fungsi

--rm

Auto hapus container

-e

Inject API key

-v

Mount folder

claude-code

Nama image


Step 4: Menjalankan Write Operation

Tambahkan parameter berikut:

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."

Kenapa perlu tambahan ini?

Flag

Fungsi

-u UID:GID

Permission write

--dangerously-skip-permissions

Non-interactive mode

⚠️ Aman digunakan karena sudah diisolasi oleh Docker.

Claude Code Docker Write Operation


Step 5: Verifikasi Hasil

Cek file:

cat app.py

Jika ada perubahan → setup berhasil 🎉


Step 6: Setup Multi-Service dengan Docker Compose

Untuk project kompleks (database, API, dll), gunakan Docker Compose.

Contoh docker-compose.yml

services:

  Claude:

    build: .

    environment:

      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}

    volumes:

      - ./workspace:/workspace

    depends_on:

      db:

        condition: service_healthy

    networks:

      - app-network


  website:

    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

Jalankan Services

docker compose up -d web db

Jalankan Claude

docker compose run --rm \

  Claude\

  --dangerously-skip-permissions\

  "Check the database connection and summarize the schema in README.md."

Step 7: Manajemen Cleanup

Command

Fungsi

docker compose down

Stop semua service

docker container prune

Hapus container stop

docker compose down -v

Reset total (hapus data DB)

docker ps

Cek container aktif

 

Best Practices Keamanan (WAJIB)

❌ Jangan Pernah Lakukan Ini:

  • Mount /var/run/docker.sock

  • Simpan API key di Dockerfile

  • Gunakan root user

✅ Lakukan ini:

  • Gunakan non-root user

  • Batasi volume mount

  • Gunakan environment variable


Optimasi Build Docker

Gunakan multi-stage build:

FROM node:20-slim AS builder

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

 

FROM node:20-slim

COPY --from=builder /usr/local /usr/local

RUN useradd -m -u 1001 claude

USER claude

WORKDIR /workspace

ENTRYPOINT ["claude"]

Troubleshooting

Masalah

Solusi

API tidak bisa diakses

Cek network Docker

File tidak terbaca

Cek volume mount

Perubahan tidak update

Gunakan --no-cache

Service tidak connect

Gunakan nama service, bukan localhost

API error

Cek API key

 


Kapan Harus Pakai Docker vs Compose?

Kebutuhan

Gunakan

Script sederhana

Docker biasa

Fullstack app

Docker Compose

Team environment

Devcontainer

FAQ:

1. Apa itu Claude Code Docker?

Claude Code Docker adalah cara menjalankan AI coding agent dalam container agar lebih aman dan terisolasi.

2. Apakah aman menjalankan AI agent di Docker?

Ya, selama tidak membuka akses berbahaya seperti docker.sock.

3. Kapan harus pakai Docker Compose?

Saat project membutuhkan database, API, atau multi-service environment.

4. Apakah Claude Code bisa merusak sistem?

Tanpa isolasi: bisa.
Dengan Docker: risikonya sangat kecil.

Kesimpulan

Menjalankan Claude Code di Docker bukan hanya soal teknis, tapi soal keamanan dan kontrol.

Dengan pendekatan container:

  • Anda bisa menjalankan AI agent tanpa risiko
  • Environment tetap bersih dan konsisten
  • Workflow lebih profesional dan scalable

Untuk penggunaan sehari-hari:

  • Gunakan single container untuk task sederhana
  • Gunakan Docker Compose untuk aplikasi kompleks

🔥 Upgrade Skill AI & DevOps Anda

Ingin menguasai lebih dalam:

  • AI Coding Agents (Claude, GPT, dll)
  • Docker & Kubernetes
  • Secure Dev Environment

Ikuti pelatihan intensif IT profesional sekarang juga dan upgrade skill Anda ke level advanced. Berikut pelatihan yang kami rekomendasikan:

 

Silakan konsultasikan kebutuhan Anda bersama kami dengan klik link berikut: https://bit.ly/kontaksuhu

Kata SUHU Pilihan

Loading...