Kalau Docker itu restoran, Docker Hub adalah dapurnya, tempat semua bahan masakan (image) tersedia. Mau bikin container yang jalan MySQL, Redis, atau Nginx? Tinggal ambil image dari Docker Hub, dan voila—container langsung siap saji!
Tapi… gimana caranya?
Tenang! Di artikel ini kita bakal bahas:
- Apa itu Docker Hub? – Biar nggak bingung kayak pertama kali masuk warteg baru.
- Cara menarik image dari Docker Hub – Seperti pesan makanan online, tapi untuk server.
- Menjalankan container dari image yang di-download – Siap untuk disantap!
- Mengelola image yang sudah di-download – Biar nggak numpuk kayak stok makanan di kulkas.
Siap? Ayo mulai!
1. Apa Itu Docker Hub?
Docker Hub adalah repositori resmi untuk Docker images. Bayangkan seperti Google Play Store atau App Store, tapi isinya bukan aplikasi, melainkan image Docker yang bisa langsung dipakai buat bikin container.
Kenapa harus pakai Docker Hub?
Praktis – Nggak perlu bikin image dari nol, cukup tarik yang sudah ada.
Resmi & Aman – Banyak image dari vendor terpercaya (Nginx, MySQL, PostgreSQL, dll).
Gratis (untuk public images) – Bisa dipakai tanpa bayar, tapi kalau mau private repo harus langganan.
URL Docker Hub: https://hub.docker.com
2. Cara Menarik Image dari Docker Hub
Kalau mau download image dari Docker Hub, cukup pakai perintah docker pull
.
docker pull nginx
Apa yang terjadi?
- Docker akan mencari image
nginx
di Docker Hub. - Kalau ketemu, image akan di-download ke komputer kamu.
- Setelah download selesai, image siap dipakai buat container.
Cek image yang sudah di-download dengan:
docker images
Contoh output:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest a2f3bb23c3a3 2 days ago 133MB
Berarti image nginx
sudah ada di sistem kita!
Menarik image versi tertentu:
docker pull nginx:1.21
Kalau nggak spesifik versi, Docker otomatis ambil versi terbaru (latest
).
3. Menjalankan Container dari Image Docker Hub
Setelah download image, kita bisa langsung menjalankan container dengan docker run
.
docker run -d -p 8080:80 nginx
Apa yang terjadi?
- Docker menjalankan container dari image
nginx
. - Port 80 di container dihubungkan ke port 8080 di host.
- Akses di browser:
http://localhost:8080
buat lihat hasilnya.
Menjalankan container dengan nama khusus:
docker run -d --name my_nginx -p 8080:80 nginx
Dengan --name my_nginx
, kita bisa lebih mudah mengelola container!
Cek apakah container berjalan:
docker ps
Kalau nginx
ada di daftar, berarti berhasil!
4. Mengelola Image yang Sudah Didownload
Melihat daftar image di sistem:
docker images
Kalau kebanyakan image numpuk, bisa hapus dengan:
docker rmi nginx
Hati-hati! Image nggak bisa dihapus kalau masih dipakai container. Matikan dulu:
docker stop my_nginx
docker rm my_nginx
docker rmi nginx
5. Contoh Kasus dan Solusi
Kasus 1: Image Tidak Ditemukan di Docker Hub
docker pull unknown-image
Error:
Error response from daemon: manifest for unknown-image not found
Solusi:
Cek di Docker Hub apakah image-nya benar-benar ada:
https://hub.docker.com
Kasus 2: Port Sudah Dipakai, Container Nggak Bisa Jalan
docker run -d -p 80:80 nginx
Error:
Bind for 0.0.0.0:80 failed: port is already allocated
Solusi:
Gunakan port lain, misalnya:
docker run -d -p 8081:80 nginx
Kasus 3: Mau Menjalankan Container dengan Database (Multi-container Setup)
Misalnya mau jalankan WordPress dengan MySQL, bisa tarik image dulu:
docker pull mysql
docker pull wordpress
Terus jalankan dua container ini biar mereka bisa komunikasi:
docker network create my_network
docker run -d --name my_db --network my_network -e MYSQL_ROOT_PASSWORD=root mysql
docker run -d --name my_wp --network my_network -p 8080:80 wordpress
Sekarang WordPress bisa akses MySQL lewat jaringan internal Docker.
6. Kesimpulan: Docker Hub Itu Marketplace Image Gratisan!
Ringkasan Cepat:
Cari dan download image: docker pull <image_name>
Jalankan container dari image: docker run -d -p <host_port>:<container_port> <image>
Cek daftar image yang sudah didownload: docker images
Hapus image yang nggak dipakai: docker rmi <image_name>
Dengan memahami cara pakai Docker Hub, kamu nggak perlu bikin image dari nol dan bisa langsung jalankan aplikasi dalam hitungan detik!
0 Comments