Cara Membuat Docker Image dan Upload ke Docker Hub untuk Deployment Cloud

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

Docker image merupakan fondasi utama dalam arsitektur container modern. Hampir seluruh proses cloud deployment, CI/CD pipeline, dan DevOps automation bergantung pada Docker image yang terstruktur dan konsisten.

Secara default, Docker menyediakan ribuan image siap pakai melalui Docker Hub. Namun, dalam praktik profesional, engineer sering kali perlu membuat Docker image sendiri, baik dari container yang sudah berjalan maupun dari Dockerfile, lalu mengunggahnya ke Docker Hub atau container registry lainnya.

Artikel ini membahas cara membuat Docker image dan melakukan push ke Docker Hub dengan dua metode utama yang paling sering digunakan di lingkungan DevOps.

Apa Itu Docker Image dan Docker Hub

Docker image adalah template read-only yang berisi aplikasi, dependency, dan konfigurasi runtime. Image inilah yang digunakan Docker untuk membuat container.

Docker Hub berfungsi sebagai container registry cloud yang memungkinkan Anda:

  • Menyimpan dan mendistribusikan Docker image

  • Mengintegrasikan image dengan CI/CD pipeline

  • Mendukung deployment ke cloud provider

  • Berkolaborasi dalam tim DevOps

Metode 1: Membuat Docker Image dari Container yang Sudah Ada

Metode ini cocok untuk kebutuhan cepat, seperti menyimpan hasil konfigurasi container atau proof of concept.

Membuat Docker Image dengan docker commit

Misalnya, Anda sudah memiliki container bernama web-freelancer. Container tersebut dapat dijadikan image dengan perintah berikut:

docker commit web-freelancer web-freelancer:v1

Mengecek Docker Image

docker images

Contoh output:

REPOSITORY TAG IMAGE ID CREATED SIZE web-freelancer v1 0086656c5db9 seconds ago 844MB

Metode ini cepat, tetapi tidak direkomendasikan untuk production karena sulit direplikasi dan tidak terdokumentasi secara deklaratif.

Metode 2: Membuat Docker Image Menggunakan Dockerfile (Best Practice)

Dockerfile adalah file konfigurasi berbasis teks yang berisi instruksi untuk membangun Docker image secara konsisten dan terstandarisasi. Metode ini merupakan best practice untuk DevOps dan production environment.

Membuat Dockerfile

nano Dockerfile

Isi Dockerfile:

FROM nginx:stable-alpine LABEL maintainer="betariko<trial@betariko.com>" COPY freelancer/. /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]

Penjelasan singkat:

  • FROM menentukan base image

  • LABEL menyimpan metadata image

  • COPY menyalin file aplikasi ke container

  • EXPOSE mendeklarasikan port layanan

  • CMD menentukan perintah utama containerm

Build Docker Image

docker build -t web-freelancer:v1 .

Contoh output build:

Successfully built 1915e927a451 Successfully tagged web-freelancer:v1

Mengecek Docker Image

docker images

Contoh hasil:

REPOSITORY TAG IMAGE ID CREATED SIZE web-freelancer v1 1915e927a451 seconds ago 23.1MB

Perbandingan ini menunjukkan bahwa Dockerfile menghasilkan image yang jauh lebih kecil dan efisien dibanding docker commit.

Upload Docker Image ke Docker Hub

Agar Docker image dapat digunakan oleh server lain, CI/CD pipeline, atau cloud platform, image perlu diunggah ke Docker Hub.

Membuat Akun Docker Hub

Daftar akun terlebih dahulu di https://hub.docker.com.

Login ke Docker Hub

docker login

Jika berhasil, akan muncul pesan:

Login Succeeded

Memberi Tag Sesuai Registry

Docker Hub mewajibkan format nama image:

username/repository:tag

Ubah nama image:

docker tag web-freelancer:v1 betariko/web-freelancer:v1

Verifikasi:

docker images

Push Docker Image ke Docker Hub

docker push betariko/web-freelancer:v1

Jika sukses, image akan muncul di halaman repository Docker Hub Anda.

Download dan Menggunakan Docker Image dari Docker Hub

Pull Docker Image

docker pull betariko/web-freelancer:v1

Menjalankan Container dari Image

docker run -d -p 80:80 --name web web-freelancer:v1

Mengecek Container

docker ps

Contoh output:

CONTAINER ID IMAGE STATUS PORTS de139a9c6f50 web-freelancer:v1 Up 0.0.0.0:80->80/tcp

Best Practice Docker Image untuk DevOps dan Cloud

Untuk memaksimalkan performa, keamanan, dan efisiensi biaya cloud:

  • Gunakan Dockerfile, hindari docker commit untuk production

  • Pilih base image yang ringan seperti Alpine

  • Gunakan tag versi yang konsisten

  • Integrasikan Docker Hub dengan CI/CD pipeline

  • Scan image untuk vulnerability sebelum deployment

Kesimpulan

Membuat Docker image dan mengunggahnya ke Docker Hub merupakan langkah fundamental dalam workflow DevOps modern. Dockerfile adalah pendekatan terbaik untuk menghasilkan image yang konsisten, ringan, dan siap digunakan di lingkungan production maupun cloud.

Dengan Docker Hub sebagai container registry, proses deployment menjadi lebih cepat, terstandarisasi, dan mudah diintegrasikan dengan sistem CI/CD serta cloud infrastructure berskala enterprise.