Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Hardening Docker Container: Panduan Lengkap & Mudah untuk Pemula
  • CI/CD Laravel: Otomatisasi Deployment dengan Jenkins & Docker
  • Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  • Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)
  • Panduan Lengkap: Deploy Website Statis ke Kubernetes Menggunakan Docker + NodePort

Recent Comments

  1. Dany on Hardening Docker Container: Panduan Lengkap & Mudah untuk Pemula
  2. Masdika.BIZ.ID on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  3. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  4. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  5. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Archives

  • August 2025
  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Hardening Docker Container: Panduan Lengkap & Mudah untuk Pemula

August 4, 2025 Tutorial by Masdika.BIZ.ID
Hardening Docker Container: Panduan Lengkap & Mudah untuk Pemula

Apa Itu Hardening Docker?

Hardening Docker artinya memperkuat keamanan container agar tidak mudah diretas atau disalahgunakan. Docker sangat membantu dalam deploy aplikasi, tapi kalau tidak diamankan, bisa jadi celah bagi attacker.

Panduan ini akan menjelaskan praktik-praktik terbaik hardening Docker dengan bahasa sederhana, cocok untuk pemula DevOps atau siapa pun yang baru belajar Docker.

1. Pakai Base Image yang Kecil dan Aman 🏗️

Gunakan image seperti alpine, ubuntu-minimal, atau distroless. Semakin kecil image, semakin sedikit celah keamanannya.

Contoh Dockerfile:

FROM alpine:latest

Kenapa penting? Karena image besar sering bawa banyak paket yang tidak dipakai tapi bisa jadi lubang keamanan.

2. Jangan Jalankan Sebagai Root 🙅‍♂️

Secara default, container pakai user root. Bahaya kalau container diretas.

Solusi: Tambahkan user non-root di Dockerfile.

RUN addgroup -S app && adduser -S app -G app
USER app

3. Scan Image dari Celah Keamanan 🔍

Gunakan tools seperti Trivy untuk mendeteksi celah (vulnerabilities).

Cara pakai Trivy:

trivy image nama-image-kamu

4. Jangan Pakai Tag latest 📌

Tag latest bisa berubah-ubah, bikin build tidak konsisten.

Contoh salah:

FROM node:latest

Contoh benar:

FROM node:18.16.0

5. Batasi Resource Container 📉

Biar satu container tidak menghabiskan semua RAM/CPU server.

Contoh:

docker run --memory="256m" --cpus="0.5" app

6. Buat Filesystem Jadi Read-Only 🔒

Supaya container tidak bisa nulis ke sistem file (kecuali memang perlu).

Contoh:

docker run --read-only app

7. Buang File/Library yang Tidak Dipakai ✂️

Pakai multi-stage build, jadi cuma bawa hasil akhir ke image production.

Contoh:

FROM golang:alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o app

FROM alpine:latest
COPY --from=builder /app/app /app
ENTRYPOINT ["/app"]

8. Rutin Update Image 🔄

Update image atau rebuild secara berkala supaya dapat patch keamanan terbaru.

Tips: Pakai CI/CD pipeline yang build ulang otomatis misalnya tiap minggu.

9. Simpan Password Secara Aman 🔐

Jangan hardcode password di Dockerfile atau .env. Pakai secret manager!

Contoh:

  • Docker Swarm: docker secret
  • Kubernetes: pakai Secret object
  • Vault, AWS Secrets Manager, dsb

10. Monitor Aktivitas Container 📊

Gunakan tools seperti:

  • Falco: deteksi aktivitas mencurigakan
  • Promtail + Grafana Loki: pantau log container

11. Jangan Pakai Mode Jaringan host 🌐

Mode ini membuat container share IP dengan host, bisa jadi bahaya.

Solusi:
Gunakan bridge network (default Docker) atau overlay jika pakai Swarm/K8s.

12. Kurangi Hak Istimewa Container ⚙️

Jangan kasih semua kemampuan Linux ke container.

Contoh:

docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE app

13. Gunakan Profil Keamanan Linux (seccomp, AppArmor) 🧱

Docker punya profil seccomp default untuk batasi syscall berbahaya.

Contoh:

docker run --security-opt seccomp=default.json app

14. Matikan Fitur Tidak Penting ❌

Kalau tidak butuh fitur seperti Content Trust, matikan aja.

Contoh:

DOCKER_CONTENT_TRUST=0 docker pull app

15. Gunakan Registry Pribadi 🗂️

Upload image ke registry sendiri seperti:

  • GitHub Container Registry
  • AWS ECR
  • Docker Registry lokal

Ini lebih aman dan kamu bisa kontrol aksesnya.

Kesimpulan

Docker itu powerful, tapi juga rawan kalau Tidak dijaga keamanannya. Praktik-praktik di atas adalah langkah awal yang sangat penting buat DevOps dan engineer pemula supaya deployment makin aman.

Share:
Tags: containerdevopsdockerdockerfilehardening

Post navigation

Prev
1 Comment
  • Dany 7:29 pm August 4, 2025 Reply

    Thanks mas

Write a comment Cancel Reply


© 2025 www.masdika.biz.id — Semua Hak Dilindungi