Lewati ke konten utama

Docker Hello World: Mulai dan Verifikasi Semua Berjalan Baik

Menjalankan docker run hello-world adalah cara tercepat untuk memastikan instalasi Docker Anda berfungsi dengan benar, memahami apa yang terjadi saat Anda mengeksekusi kontainer, dan menelusuri masalah setup umum sebelum membangun aplikasi nyata.
· 7 mnt Baca

Jelajahi bersama AI

Anda sudah menjalankan installer, menuntaskan proses setup, dan Docker menyatakan siap. Namun bagaimana cara memastikannya benar-benar siap? Hampir semua panduan Docker di internet mengasumsikan Anda sudah memverifikasi setup, tetapi tidak ada yang menjelaskan langkah verifikasi tersebut.

Kabar baiknya, Docker menyediakan image uji bawaan bernama hello-world yang mengonfirmasi semuanya berfungsi. Anda hanya perlu menjalankan satu perintah untuk mendapatkan umpan balik instan apakah Docker sudah dikonfigurasi dengan benar.

Dalam artikel ini, saya akan menunjukkan apa yang dilakukan image hello-world, cara menjalankannya, makna output-nya, serta cara mengatasi masalah umum ketika terjadi kegagalan.

Setelah Anda menjalankan contoh Hello World, Anda siap mempelajari dasar-dasar Docker. Kursus Pengenalan Docker kami akan membuat Anda mahir dalam satu sore.

Apa Itu Docker Hello World?

Image hello-world adalah alat diagnostik resmi Docker untuk menguji instalasi Anda.

Docker memelihara image ini sebagai kontainer sekecil mungkin yang dapat membuktikan Docker berfungsi. Ini adalah executable mungil yang mencetak pesan konfirmasi dan keluar. Hanya itu.

Docker menyediakan hello-world karena pengguna baru memerlukan cara cepat untuk memverifikasi tiga hal:

  • Docker terpasang dengan benar di sistem Anda
  • Anda memiliki izin yang tepat untuk menjalankan perintah Docker
  • Docker daemon dapat diakses dan merespons permintaan

Anggap saja seperti menjalankan python --version setelah menginstal Python. Anda hanya memastikan alatnya siap digunakan — belum membangun apa pun.

Cara Menjalankan Docker Hello World

Menjalankan image hello-world cukup dengan satu perintah.

docker run hello-world

Saat Anda menjalankan perintah ini, Docker melakukan dua hal:

  • Memeriksa apakah image tersedia secara lokal. Docker melihat ke cache image lokal untuk mengetahui apakah Anda sudah mengunduh hello-world. Jika image ada, Docker melewati proses unduh dan langsung menjalankannya.

  • Jika image tidak ditemukan secara lokal, Docker menariknya dari Docker Hub. Docker Hub adalah registry bawaan tempat Docker menyimpan image resmi. Image hello-world sangat kecil — hanya beberapa kilobyte, sehingga unduhan selesai dengan cepat.

Setelah Docker memiliki image-nya, Docker membuat dan menjalankan kontainer dari image tersebut. Kontainer mengeksekusi program bawaannya, mencetak pesan konfirmasi, lalu keluar.

Apa yang Terjadi Saat Anda Menjalankan Docker Hello World?

Berikut alur langkah demi langkah ketika Anda menjalankan docker run hello-world.

Pertama, Docker memeriksa apakah image tersedia secara lokal. Ia mencari di cache image lokal untuk melihat apakah Anda sudah mengunduh hello-world. Jika image ada, Docker melompat ke langkah berikutnya. Jika tidak, Docker terhubung ke Docker Hub dan menarik image tersebut.

Berikutnya, Docker membuat sebuah kontainer dari image tersebut. Image ibarat templat — berisi program dan semua yang dibutuhkan untuk menjalankannya. Kontainer adalah instance berjalan dari templat itu.

Kontainer menjalankan programnya, yang mencetak pesan konfirmasi ke terminal Anda. Pesan ini menjelaskan apa yang baru saja dilakukan Docker dan mengonfirmasi semuanya berfungsi.

Terakhir, kontainer keluar. Program hello-world tidak dirancang untuk tetap berjalan. Ia mencetak pesan lalu segera berhenti. Kontainer masih ada di sistem Anda, tetapi dalam keadaan berhenti.

Seluruh proses ini berlangsung otomatis saat Anda menjalankan perintah; Anda tidak perlu mengelola langkah-langkah tersebut secara manual.

Memahami Output Docker Hello World

Saat hello-world berjalan dengan sukses, Anda akan melihat pesan multi-baris yang menguraikan apa yang baru terjadi.

Output docker run hello-world

Output dimulai dengan konfirmasi bahwa Docker tidak menemukan image secara lokal, sehingga menariknya dari Docker Hub. Anda akan melihat sesuatu seperti "Unable to find image 'hello-world:latest' locally" diikuti bilah progres unduhan.

Berikutnya muncul pesan utama yang mengonfirmasi Docker berfungsi dengan benar. Pesan ini menuntun Anda melalui langkah-langkah persis yang diambil Docker. Dijelaskan bahwa Docker daemon menarik image, membuat kontainer darinya, menjalankan executable di dalamnya, dan mengalirkan output ke terminal Anda.

Pesan tersebut juga memuat langkah lanjutan yang dapat Anda coba. Ia menyarankan menjalankan kontainer yang lebih interaktif seperti Ubuntu, yang tetap berjalan dan memungkinkan Anda mengeksekusi perintah di dalamnya. Ini membantu Anda memahami perbedaan antara kontainer uji sekali jalan dan kontainer nyata yang akan Anda gunakan untuk pengembangan.

Terakhir, Anda akan melihat kontainer keluar. Program hello-world dirancang untuk mencetak pesan dan segera berhenti — ini bukan layanan atau aplikasi jangka panjang. Tugas kontainer selesai setelah mengonfirmasi Docker berfungsi.

Jika Anda melihat seluruh output ini tanpa error, instalasi Docker Anda berfungsi dengan benar dan Anda siap menjalankan kontainer sebenarnya.

Masalah Umum Saat Menjalankan Docker Hello World

Bahkan uji sederhana seperti hello-world bisa gagal jika Docker tidak disiapkan dengan benar. Berikut masalah paling umum dan cara mengatasinya.

Perintah Docker tidak ditemukan

Jika Anda melihat "docker: command not found" atau "docker is not recognized," berarti Docker belum terpasang atau belum ada di PATH sistem Anda.

Di Linux, periksa apakah Docker terpasang:

which docker

Image 2 - Docker location

Lokasi Docker

Jika ini tidak mengembalikan apa pun, Anda perlu menginstal Docker. Di macOS dan Windows, pastikan Docker Desktop terpasang dan berjalan.

Error izin ditolak

Anda mungkin melihat "permission denied while trying to connect to the Docker daemon socket."

Ini terjadi ketika akun pengguna Anda tidak memiliki izin untuk mengakses Docker. Di Linux, Anda perlu menjalankan Docker dengan sudo atau menambahkan pengguna Anda ke grup docker:

sudo usermod -aG docker $USER

Keluar lalu masuk kembali agar perubahan berlaku. Di macOS dan Windows dengan Docker Desktop, ini bukan masalah.

Docker daemon tidak berjalan

Jika Anda mendapatkan "Cannot connect to the Docker daemon," layanan Docker tidak berjalan.

Di Linux, mulai layanan Docker:

sudo systemctl start docker

Di macOS dan Windows, buka Docker Desktop. Daemon akan mulai otomatis ketika aplikasi berjalan. Anda akan melihat ikon Docker di system tray saat siap.

Masalah jaringan saat menarik image

Terkadang Docker tidak dapat mengunduh image hello-world dari Docker Hub. Anda akan melihat error gagal menarik atau batas waktu koneksi.

Periksa koneksi internet Anda terlebih dahulu. Jika Anda berada di belakang firewall atau proxy perusahaan, Anda mungkin perlu mengonfigurasi Docker untuk menggunakannya. Di Linux, ini ada di /etc/systemd/system/docker.service.d/http-proxy.conf. Di Docker Desktop, Anda dapat mengatur proxy di Settings.

Jika perbaikan ini tidak berhasil, pesan error biasanya mengarahkan Anda ke penyebabnya — bacalah dengan saksama.

Apa yang Dilakukan Setelah Docker Hello World

Sekarang setelah Anda memastikan Docker berfungsi, berikut langkah selanjutnya.

Jalankan kontainer sebenarnya dengan shell interaktif. Coba tarik dan jalankan kontainer Ubuntu:

docker run -it ubuntu bash

Image 3 - Ubuntu bash

Ubuntu bash

Flag -it memberi Anda terminal interaktif di dalam kontainer. Anda dapat menjalankan perintah, memasang paket, dan mengeksplorasi cara kerja kontainer. Ketik exit untuk keluar dari kontainer.

Jelajahi image yang tersedia di Docker Hub. Anda akan menemukan image resmi untuk basis data seperti PostgreSQL dan MySQL, bahasa pemrograman seperti Python dan Node.js, serta alat seperti Redis dan Nginx. Telusuri di hub.docker.com atau cari langsung dari command line:

docker search python

Image Python yang tersedia.

Bangun image Anda sendiri dengan Dockerfile. Mulailah sederhana: Buat file bernama Dockerfile yang menyalin kode aplikasi Anda ke dalam kontainer dan mendefinisikan cara menjalankannya. Bahkan Dockerfile dasar dengan beberapa baris saja akan mengajarkan Anda bagaimana image dibangun dari instruksi.

Kesimpulan

Perintah docker run hello-world melakukan satu hal dengan baik: Membuktikan instalasi Docker Anda berfungsi.

Ini bukan aplikasi nyata. Ini tidak akan mengajarkan Anda cara membangun kontainer atau menerapkan layanan produksi. Namun ini akan memberi Anda ketenangan karena Anda tahu tidak ada yang salah dengan instalasi Docker Anda.

Jika hello-world berjalan tanpa error dan mencetak pesan konfirmasinya, lingkungan Docker Anda telah disiapkan dengan benar, dan Anda siap bekerja dengan kontainer sebenarnya.

Lalu, apa selanjutnya? Ikuti kursus Pengenalan Docker kami. Kursus ini akan memberi Anda pengetahuan dasar yang dibutuhkan untuk bekerja dalam tim. Setelah itu, bangun sesuatu yang bermanfaat dengan mengikuti artikel 10 Ide Proyek Docker kami.

Dario Radečić

Penulis

Dario Radečić

Senior Data Scientist yang berbasis di Kroasia. Penulis Tekno Teratas dengan lebih dari 700 artikel yang telah diterbitkan, menghasilkan lebih dari 10 juta tayangan. Penulis buku Machine Learning Automation with TPOT.

FAQs

Bagaimana cara mengoptimalkan ukuran image Docker?

Mulailah dengan image basis yang lebih kecil seperti Alpine Linux alih-alih image Ubuntu atau Debian penuh. Gunakan multi-stage builds untuk memisahkan dependensi build dari dependensi runtime — ini menjaga image akhir tetap ramping dengan mengecualikan compiler dan alat build. Selain itu, gabungkan perintah RUN di Dockerfile Anda untuk mengurangi jumlah layer, dan gunakan .dockerignore agar file yang tidak diperlukan tidak tersalin ke dalam image.

Apa praktik terbaik untuk menggunakan Docker di produksi?

Jangan pernah menjalankan kontainer sebagai root — buat pengguna non-root di Dockerfile Anda dan beralihlah ke pengguna tersebut. Gunakan tag image spesifik alih-alih latest untuk menjamin deployment yang konsisten di berbagai lingkungan. Tetapkan batas sumber daya (CPU dan memori) untuk kontainer Anda agar satu kontainer tidak menghabiskan semua sumber daya host. Health check juga penting — definisikan di Dockerfile sehingga alat orkestrasi dapat mendeteksi dan memulai ulang kontainer yang tidak sehat.

Bagaimana cara mengintegrasikan Docker dengan pipeline CI/CD?

Sebagian besar platform CI/CD seperti GitHub Actions, GitLab CI, dan Jenkins memiliki dukungan Docker bawaan. Anda biasanya membangun image Docker sebagai bagian dari pipeline, memberi tag dengan SHA commit atau nomor versi, mendorongnya ke registry kontainer seperti Docker Hub atau AWS ECR, lalu menerapkannya ke lingkungan Anda. Kuncinya adalah mengotomatisasi alur build-tag-push-deploy sehingga setiap perubahan kode menghasilkan image kontainer yang diuji dan diberi versi.

Apa keuntungan menggunakan multi-stage builds di Docker?

Multi-stage builds memungkinkan Anda menggunakan satu set alat untuk membangun aplikasi dan set lain yang lebih kecil untuk menjalankannya. Misalnya, Anda dapat mengompilasi aplikasi Go di tahap yang menyertakan compiler Go, lalu menyalin hanya binary yang telah dikompilasi ke image Alpine minimal untuk tahap akhir. Ini secara drastis mengurangi ukuran image — sebuah aplikasi terkompilasi mungkin membutuhkan 1GB alat build tetapi hanya 20MB untuk berjalan. Image yang lebih kecil berarti deployment lebih cepat dan biaya penyimpanan lebih rendah.

Bagaimana saya dapat memastikan kontainer Docker saya berjalan dengan aman?

Pindai image Anda dari kerentanan menggunakan alat seperti Docker Scout atau Trivy sebelum menerapkannya. Jangan simpan secret di Dockerfile atau variabel lingkungan — gunakan Docker secrets atau alat manajemen secret eksternal. Jaga image basis Anda tetap mutakhir untuk mendapatkan patch keamanan, dan batasi kapabilitas kontainer menggunakan flag --cap-drop untuk menghapus kapabilitas Linux yang tidak diperlukan. Selain itu, gunakan filesystem read-only jika memungkinkan dan jangan pernah mengekspos soket Docker di dalam kontainer kecuali benar-benar diperlukan.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026