0% read

Cara Menjalankan Gemma 4 di Docker (Panduan Container Lengkap)

Apr 7, 2026

Docker memberimu deployment AI yang reproducible dan terisolasi. Container yang sama, hasil yang sama — entah di laptop, server staging, atau produksi. Tidak ada lagi "ini berfungsi di mesin saya."

Mari kita set up Gemma 4 di Docker dari awal.

Mengapa Docker untuk AI?

  • Reproducible: Pin versi Ollama, file model, dan config
  • Terisolasi: Tidak akan mengacaukan Python, CUDA, atau apa pun di sistem host
  • Portabel: Build sekali, deploy di mana saja
  • Mudah dibersihkan: docker compose down dan selesai

Jika kamu hanya menjalankan Gemma 4 untuk penggunaan pribadi, Ollama langsung lebih sederhana. Docker bersinar saat kamu butuh deployment konsisten di berbagai lingkungan atau ingin membundel Gemma 4 ke stack aplikasi yang lebih besar.

Quick Start dengan Docker Run

Cara tercepat menjalankan Gemma 4 di Docker:

# Jalankan Ollama di Docker
docker run -d \
  --name gemma4 \
  -p 11434:11434 \
  -v ollama-data:/root/.ollama \
  ollama/ollama

# Pull dan jalankan Gemma 4
docker exec gemma4 ollama pull gemma4:26b
docker exec -it gemma4 ollama run gemma4:26b

Selesai — tiga perintah. -v ollama-data:/root/.ollama memastikan modelmu persist saat container restart.

Dockerfile dengan Ollama

Untuk kontrol lebih, build image kustom:

FROM ollama/ollama:latest

# Set environment
ENV OLLAMA_HOST=0.0.0.0
ENV OLLAMA_KEEP_ALIVE=24h

# Buat startup script yang pull model saat pertama run
COPY <<'EOF' /start.sh
#!/bin/bash
ollama serve &
sleep 5

# Pull model jika belum ada
if ! ollama list | grep -q "gemma4:26b"; then
    echo "Pulling Gemma 4 26B..."
    ollama pull gemma4:26b
fi

# Keep container running
wait
EOF

RUN chmod +x /start.sh

EXPOSE 11434

CMD ["/start.sh"]

Build dan jalankan:

docker build -t gemma4-server .
docker run -d --name gemma4 -p 11434:11434 -v ollama-data:/root/.ollama gemma4-server

Docker Compose (Direkomendasikan)

Untuk setup yang proper, gunakan docker-compose.yml:

version: "3.8"

services:
  ollama:
    image: ollama/ollama:latest
    container_name: gemma4-ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama-models:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
      - OLLAMA_KEEP_ALIVE=24h
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s

  webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: gemma4-webui
    ports:
      - "3000:8080"
    volumes:
      - webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      ollama:
        condition: service_healthy
    restart: unless-stopped

volumes:
  ollama-models:
    driver: local
  webui-data:
    driver: local

Ini memberimu Ollama + Open WebUI — antarmuka lengkap seperti ChatGPT untuk Gemma 4:

# Start semuanya
docker compose up -d

# Pull Gemma 4
docker exec gemma4-ollama ollama pull gemma4:26b

# Buka web UI
open http://localhost:3000

GPU Passthrough (NVIDIA)

Untuk menggunakan GPU-mu di dalam Docker, kamu butuh NVIDIA Container Toolkit:

# Instal NVIDIA Container Toolkit (Ubuntu/Debian)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# Konfigurasi Docker menggunakan NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# Verifikasi
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi

Update docker-compose.yml-mu untuk menggunakan GPU:

services:
  ollama:
    image: ollama/ollama:latest
    ports:
      - "11434:11434"
    volumes:
      - ollama-models:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

Catatan: Di Mac dengan Apple Silicon, Docker berjalan di VM Linux dan tidak bisa mengakses akselerasi Metal. Untuk Mac, jalankan Ollama secara native saja — kamu akan otomatis mendapat akselerasi GPU Metal. Lihat panduan performa Mac kami untuk detail.

Penyimpanan Model Persisten

Model adalah file besar. Kamu tidak ingin mengunduhnya ulang setiap kali container restart.

Named volume (direkomendasikan — Docker mengelola penyimpanan):

volumes:
  ollama-models:
    driver: local

Bind mount (kamu pilih path — bagus untuk mengelola ruang disk):

volumes:
  - /data/ollama-models:/root/.ollama

Cek ukuran penyimpanan model:

docker exec gemma4-ollama du -sh /root/.ollama/models
ModelPerkiraan Ukuran (Q4)
Gemma 4 E2B~1.5 GB
Gemma 4 E4B~2.5 GB
Gemma 4 26B~15 GB
Gemma 4 31B~18 GB

Setup Multi-Model

Ingin menjalankan berbagai ukuran Gemma 4 untuk kasus penggunaan berbeda? Mudah:

# Pull berbagai model
docker exec gemma4-ollama ollama pull gemma4:e4b   # Cepat, tugas simpel
docker exec gemma4-ollama ollama pull gemma4:26b    # Kebanyakan tugas
docker exec gemma4-ollama ollama pull gemma4:31b    # Kualitas maksimal

# List semua model
docker exec gemma4-ollama ollama list

Ollama memuat model sesuai permintaan dan melepas yang idle. Hanya model aktif yang menggunakan VRAM. Kamu bisa mengonfigurasi berapa lama model tetap dimuat:

environment:
  - OLLAMA_KEEP_ALIVE=5m     # Unload setelah 5 menit idle
  - OLLAMA_MAX_LOADED_MODELS=2  # Keep hingga 2 model loaded

Mengekspos API

API Ollama berjalan di port 11434 secara default. Setelah container-mu berjalan:

# List model yang tersedia
curl http://localhost:11434/api/tags

# Generate respons
curl http://localhost:11434/api/chat -d '{
  "model": "gemma4:26b",
  "messages": [{"role": "user", "content": "Halo!"}]
}'

# API juga kompatibel dengan OpenAI
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4:26b",
    "messages": [{"role": "user", "content": "Halo!"}]
  }'

Untuk penggunaan API detail, lihat tutorial API kami. Untuk serving grade produksi dengan throughput lebih tinggi, pertimbangkan vLLM di Docker.

Perintah Docker yang Berguna

# Lihat logs
docker compose logs -f ollama

# Cek penggunaan resource
docker stats gemma4-ollama

# Masuk ke container
docker exec -it gemma4-ollama bash

# Stop semuanya
docker compose down

# Stop dan hapus data model
docker compose down -v

# Update Ollama image
docker compose pull && docker compose up -d

Langkah Selanjutnya

gemma4 — interact

Stop reading. Start building.

~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.

Launch Playground />
Gemma 4 AI

Gemma 4 AI

Related Guides

Cara Menjalankan Gemma 4 di Docker (Panduan Container Lengkap) | Blog