Beberapa saat yang lalu, kita telah membahas apa itu docker. Namun pengetahuan tentang suatu hal tentu kurang lengkap kalau belum mencoba langsung sendiri bukan?

Seperti yang kita telah bahas sebelumnya, docker dengan container memudahkan kita untuk menjalankan aplikasi dimanapun ada docker engine. Mari kita coba langsung.

Prerequisite

Tentunya untuk menjalankan container, kita membutuhkan docker engine. Sebelumnya saya sudah membuat sebuah post, guide sederhana akan cara menginstallnya, dan itu dapat ditemukan disini.

Image dan Tags

Jadi bagaimana caranya? Kan katanya gampang? Iya, iya sabar ya, begini nih. Sedikit penjelasan dulu yaa.

Kita dapat mencari dulu aplikasi yang kita inginkan pada docker hub. Setelah ketemu, kita hanya perlu mengingat namanya, atau tag nya. Nama ini mengacu pada nama imagenya sendiri, sedangkan tag mengacu pada suatu jenis versi yang digunakannya. Contohnya, saya ingin menggunakan aplikasi nginx, yang merupakan sebuah webserver dan reverse proxy, yang sebenarnya sempurna dijadikan contoh, karena nanti saya juga akan buat lagi artikel tentangnya.

Tag mengacu pada versi berbeda dari image, dan banyak image yang dibuat dengan dasar OS berbeda, atau versi aplikasi dalamnya sendiri yang berbeda. Dan hal ini semua diatur menggunakan tag. Jika tidak ingin pusing dan mendapatkan yang asal jadi, gunakan saja tag latest, atau tidak usah diberikan tag (yang juga akan menggunakan latest). Latest sendiri berarti versi terbaru, meski tidak selalu terbaru.

Namun jika kita melihat jenis-jenis tag yang ada, bahkan pada image nginx ini, sudah ada banyak variasi, seperti stable-alpine3.20-perl, atau bookworm-otel.

Ini sebenarnya mengacu pada konfigurasi, OS dasar, dan modul tambahan yang digunakannya. Contohnya stable-alpine3.20-perl berarti nginx yang dipaketkan di dalam container ini adalah versi stabilnya, yang biasanya berarti memiliki support jangka panjang, dengan OS dasarnya adalah distro linux yang bernama alpine dengan versi 3.20, lalu dipaketkan juga dengan modul perl dari nginx. bookworm-otel juga konsepnya mirip, bookworm mengacu pada suatu versi dari distro linux debian, dengan integrasi otel, yaitu open telemetry (alat pemantauan aplikasi atau sumber daya).

Menjalankan Container

Lalu menjalankannya bagaimana? Bilang saja sudah memilih ingin menggunakan image nginx dengan tag stable-alpine3.20-perl. Command nya sendiri mudah, gunakan saja format docker run nama-image:tag, jadi contohnya:

docker run nginx:stable-alpine3.20-perl

Mari dicoba langsung

Dapat dilihat pada line pertama setelah menjalankan commandnya, docker tidak dapat menemukan imagenya secara lokal, maka dia akan pull dahulu dari docker hub.

(Kita juga dapat pull manual dengan menggunakan docker pull image:tag)

Setelah dia selesai pull, dia akan langsung menjalankan containernya.

Lalu sekarang apa? Kita bisa buka dari mana nginx ini?

Memang benar aplikasi ini sudah jalan, namun aplikasinya belum diexpose keluar dari containernya. Ia masih didalam cangkangnya sendiri, belum diberikan akses keluar. Mari coba kita beri akses keluar.

Mari kita coba list dahulu container dengan docker ps

Untuk mematikannya dahulu, gunakan docker rm <container-id atau nama> , dalam konteks ini agar cepat, paksa remove saja dengan -f. Maka commandnya akan terlihat seperti docker rm -f 4552 (dapat gunakan beberapa huruf depannya saja)

Jika outputnya juga id yang anda ketik, maka sudah selesai. Dapat dicek ulang menggunakan docker ps apakah masih berjalan.

Untuk expose port agar dapat dibuka websitenya, kita harus menambahkan opsi --port atau -p ketika menggunakan docker run. Maka formatnya akan seperti ini:

docker run -p hostport:containerport image:tag

Host port mengacu pada port yang ada pada komputer yang kita gunakan yaitu host.

Container port mengacu pada port yang diexpose di dalam container lewat dockerfilenya.

Mari kita coba:

Ini terlihat baik, aplikasi berjalan, dan ketika dibuka host port yang sudah ditentukan,

Website pun berjalan.

Mengecek kembali ke docker ps, kita pun dapat melihat port yang digunakan.

Jika sudah selesai, dapat dimatikan kembali.

Pada saat kita tadi menjalankan container, image dari nginx itu juga tersimpan secara lokal di komputer kita, untuk melihatnya, kita juga dapat menggunakan:

docker image list

Kita dapat membuangnya dengan cara yang mirip seperti tadi:

Atau melihat langsung dan membuangnya di docker desktop dengan tombolnya:

Nah seperti itu menjalankan container, mudah kan? Selanjutnya kita akan melihat cara membuat container dengan Dockerfile, dan juga menjalankan docker compose stack. Semangat terus belajarnya!

Leave a Reply

Your email address will not be published. Required fields are marked *

Collaborative Insights from an Aspiring Engineer