Cara Install Docker di Ubuntu 22.04 untuk Production (Lengkap + Hardening)

Cara Install Docker di Ubuntu 22.04 untuk Production (Lengkap + Hardening)

Docker adalah container engine yang memungkinkan kita menjalankan aplikasi secara terisolasi dan portabel. Artikel ini membahas cara install Docker di Ubuntu 22.04 menggunakan repository resmi, konfigurasi dasar untuk production, hardening keamanan, serta troubleshooting umum yang sering terjadi.

Tutorial ini cocok untuk:

1. Kenapa Install Docker dari Repository Resmi?

Banyak orang install Docker dengan:

sudo apt install docker.io

"Ini kurang direkomendasikan untuk production karena versinya sering tertinggal. Di tutorial ini kita pakai repository resmi Docker agar update lebih cepat, stabil, dan security patch lebih terjaga"

2. Update System

Selalu update server sebelum install:

sudo apt update && sudo apt upgrade -y

Opsional (bersihkan package lama):

sudo apt autoremove -y

3. Install Dependencies

sudo apt install ca-certificates curl gnupg lsb-release -y

4. Tambahkan GPG Key Docker

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Berikan permission:

sudo chmod a+r /etc/apt/keyrings/docker.gpg

5. Tambahkan Repository Docker

echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Update kembali:

sudo apt update

6. Install Docker Engine

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Cek versi:

docker --version

Cek status:

sudo systemctl status docker

Jika belum aktif:

sudo systemctl enable docker
sudo systemctl start docker

7. Jalankan Docker Tanpa sudo

Tambahkan user ke group docker:

sudo usermod -aG docker $USER

Logout dan login kembali, lalu test:

docker run hello-world

Jika muncul pesan sukses, Docker berhasil terpasang dengan benar.

8. Basic Hardening Docker (Wajib untuk Production)

8.1 Nonaktifkan Root Login via SSH

Edit konfigurasi SSH:

sudo nano /etc/ssh/sshd_config

Ubah/set:

PermitRootLogin no

Restart SSH:

sudo systemctl restart ssh

8.2 Aktifkan Firewall (UFW)

sudo ufw allow OpenSSH
sudo ufw enable

Cek status:

sudo ufw status

8.3 Batasi Docker Exposed Port

Hindari expose port ke publik kalau tidak perlu. Contoh yang perlu dihindari:

-p 0.0.0.0:80:80

Jika ingin hanya lokal (lalu reverse proxy via Nginx), gunakan:

-p 127.0.0.1:80:80

8.4 Enable Restart Policy

Gunakan restart policy agar container otomatis hidup setelah reboot:

--restart unless-stopped

Contoh:

docker run -d \
--name nginx \
-p 80:80 \
--restart unless-stopped \
nginx

9. Install Docker Compose (Sudah Termasuk Plugin)

Di Ubuntu 22.04, Docker Compose umumnya sudah terinstall sebagai plugin. Cek:

docker compose version

Jika error, install ulang plugin:

sudo apt install docker-compose-plugin -y

10. Contoh Setup Docker Compose untuk Production

Buat folder project:

mkdir myapp && cd myapp

Buat file compose:

nano docker-compose.yml

Isi contoh sederhana:

version: '3.9'

services:
  app:
    image: nginx:latest
    container_name: my-nginx
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html

Jalankan:

docker compose up -d

Stop:

docker compose down

11. Troubleshooting Umum

11.1 Permission Denied

Error contoh: "Got permission denied while trying to connect to the Docker daemon"

Solusi:

sudo usermod -aG docker $USER

Logout-login, lalu coba lagi.

11.2 Docker Service Failed

Cek log:

journalctl -u docker.service

Restart service:

sudo systemctl restart docker

11.3 Port Already in Use

Cek siapa yang memakai port 80:

sudo lsof -i :80

Matikan service lama atau ganti port di mapping Docker.

12. Best Practice Production

  • Gunakan reverse proxy (mis. Nginx) + SSL (Let’s Encrypt)
  • Gunakan Docker network custom untuk isolasi service
  • Jangan jalankan container sebagai root jika memungkinkan
  • Backup volume secara berkala
  • Gunakan update strategy yang aman (manual terjadwal / watchtower jika paham risikonya)

13. Kesimpulan

Install Docker di Ubuntu 22.04 untuk production sebaiknya menggunakan repository resmi agar stabil dan aman. Pastikan kamu menerapkan restart policy, firewall, hardening SSH, dan tidak expose port sembarangan.