Cara Membuat Docker Image dan Upload ke Docker Hub untuk Deployment Cloud
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:
FROMmenentukan base imageLABELmenyimpan metadata imageCOPYmenyalin file aplikasi ke containerEXPOSEmendeklarasikan port layananCMDmenentukan 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 commituntuk productionPilih 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.
.png)