Cara Deploy Static Website HTML di Docker Menggunakan Nginx

Cara Install Docker di Ubuntu 20.04 LTS (Lengkap untuk DevOps dan Server Production)

Deploy static website HTML menggunakan Docker adalah pendekatan modern yang banyak digunakan oleh praktisi DevOps, Cloud Engineer, dan Web Developer. Metode ini menawarkan konsistensi environment, kemudahan deployment, serta efisiensi resource, khususnya untuk kebutuhan web hosting, CI/CD pipeline, dan cloud infrastructure.

Pada tutorial ini, Anda akan mempelajari tiga metode paling umum untuk deploy static website HTML di Docker menggunakan Nginx, mulai dari cara paling sederhana hingga pendekatan yang lebih scalable.

Prasyarat Sistem

Sebelum memulai, pastikan beberapa kebutuhan berikut sudah terpenuhi:

  • Docker sudah terinstall di server atau local machine

  • Sistem operasi Linux (Ubuntu 20.04 atau distro lain)

  • Akses root atau user dengan hak sudo

Jika Docker belum terpasang, silakan install sesuai dokumentasi resmi Docker.

Menarik Image Nginx untuk Docker

Sebagai web server, Nginx sangat ringan dan optimal untuk static content. Gunakan image nginx:stable-alpine karena ukurannya kecil dan efisien untuk production.

docker pull nginx:stable-alpine

Metode 1: Deploy dengan Copy File ke Docker Container

Metode ini cocok untuk testing cepat atau environment sementara.

1. Membuat Container Nginx

docker run -d -p 80:80 --name web-freelancer nginx:stable-alpine

Penjelasan:

  • -d menjalankan container di background

  • -p 80:80 mempublikasikan port HTTP

  • --name memberikan nama container

2. Verifikasi Container

docker ps

Jika container berjalan, Nginx sudah aktif.

3. Akses Web Server

Buka browser dan akses:

  • http://127.0.0.1

  • http://IP_SERVER

  • http://domain.com (jika DNS sudah diarahkan)

4. Copy File Website ke Container

Diasumsikan file website berada di folder ~/freelancer.

docker cp ~/freelancer/. web-freelancer:/usr/share/nginx/html

Refresh browser untuk memastikan website berhasil ter-deploy.

Kelebihan metode ini:

  • Mudah dan cepat
    Kekurangan:

  • Perubahan file tidak otomatis ter-update

Metode 2: Deploy Static Website dengan Mount Folder

Metode ini lebih fleksibel karena perubahan file langsung tercermin di container.

docker run -d -p 80:80 \ -v ~/freelancer:/usr/share/nginx/html \ --name web-freelancer nginx:stable-alpine

Keunggulan metode mount:

  • Cocok untuk development

  • Tidak perlu copy ulang file

  • Sinkronisasi real-time

Metode 3: Deploy Menggunakan Docker Volume

Metode ini direkomendasikan untuk production environment karena lebih aman dan terkelola.

1. Membuat Docker Volume

docker volume create vol-freelancer

2. Copy File Website ke Volume

cp -Rv freelancer/* /var/lib/docker/volumes/vol-freelancer/_data/

3. Jalankan Container dengan Volume

docker run -d -p 80:80 \ -v vol-freelancer:/usr/share/nginx/html \ --name web-freelancer nginx:stable-alpine

Keunggulan Docker Volume:

  • Data persisten

  • Aman saat container restart

  • Best practice untuk production

Perbandingan Metode Deployment

MetodeCocok UntukKelebihan Utama
Copy FileTesting cepatPaling sederhana
Mount FolderDevelopmentUpdate real-time
VolumeProductionData persisten dan aman

Kesimpulan

Deploy static website HTML menggunakan Docker dan Nginx memberikan banyak keuntungan, mulai dari scalability, portability, hingga kemudahan integrasi dengan cloud dan CI/CD.
Pemilihan metode sebaiknya disesuaikan dengan kebutuhan environment, baik development maupun production.

Dengan pendekatan ini, Anda sudah selangkah lebih dekat ke praktik modern web deployment dan DevOps automation.