Devops, Programming, Tutorial, Webdev

Belajar Docker bagian 3

Eko Susilo Harjo September 26, 2024
docker part 3
docker part 3

Apa Itu Docker Image?

Docker Image adalah blueprint atau cetakan dari aplikasi yang ingin Anda jalankan di dalam container. Sebuah Docker Image berisi semua file, libraries, dependensi, serta pengaturan konfigurasi yang dibutuhkan aplikasi agar dapat berjalan di berbagai lingkungan. Dalam konteks Docker, image bersifat read-only, dan Anda dapat membuat banyak container dari satu image yang sama.

Sebagai contoh, jika Anda ingin menjalankan aplikasi berbasis Node.js, Anda dapat menggunakan image Docker yang berisi Node.js dan dependensi lainnya. Saat image tersebut dijalankan, ia akan menjadi container yang berjalan terisolasi dari sistem utama.

Cara Membuat Docker Image

Membuat Docker Image dapat dilakukan melalui Dockerfile. Dockerfile adalah file teks sederhana yang berisi instruksi tentang cara membangun image. Berikut adalah contoh sederhana Dockerfile untuk aplikasi Node.js:

# Menggunakan image Node.js versi terbaru dari Docker Hub
FROM node:latest

# Mengatur direktori kerja di dalam container
WORKDIR /app

# Menyalin file aplikasi ke dalam container
COPY . .

# Menginstal dependensi aplikasi
RUN npm install

# Menentukan perintah yang dijalankan saat container dimulai
CMD ["npm", "start"]

Langkah-langkah untuk membuat image:

  1. Buat file bernama Dockerfile di direktori proyek Anda.
  2. Jalankan perintah berikut di terminal untuk membangun Docker Image dari Dockerfile docker build -t nama-aplikasi:versi . Contoh sudo docker build -t my-node-app:1.0 .
  3. Setelah proses build selesai, image baru Anda dapat dilihat dengan perintah:bashCopy codesudo docker images

Docker Hub: Mengunduh dan Menggunakan Image

Docker Hub adalah repository online yang menyediakan berbagai Docker Image yang bisa diunduh dan digunakan secara gratis. Ini mirip dengan App Store untuk Docker Image, di mana Anda bisa menemukan berbagai image yang dibutuhkan, mulai dari sistem operasi seperti Ubuntu hingga server web seperti Nginx.

Cara Mengunduh Docker Image dari Docker Hub

Mengunduh image dari Docker Hub sangat mudah. Berikut adalah langkah-langkahnya:

  1. Gunakan perintah docker pull untuk mengunduh image dari Docker Hub sudo docker pull [nama-image] Contoh sudo docker pull nginx Perintah ini akan mengunduh image Nginx dari Docker Hub ke sistem Anda.
  2. Setelah image diunduh, Anda bisa melihatnya dengan perintah sudo docker images Anda akan melihat image Nginx yang baru saja diunduh terdaftar di sana.

Membuat Container dari Image

Setelah Anda memiliki Docker Image, langkah selanjutnya adalah menjalankan container berdasarkan image tersebut. Container adalah instance dari Docker Image yang dapat dijalankan, dihentikan, atau dihapus sesuai kebutuhan.

Cara Membuat dan Menjalankan Container

Untuk menjalankan container dari Docker Image, Anda bisa menggunakan perintah berikut:

sudo docker run -d --name nama-container -p 80:80 nginx

Penjelasan perintah:

  • -d: Menjalankan container di background (detached mode).
  • --name nama-container: Memberikan nama untuk container yang dijalankan.
  • -p 80:80: Memetakan port 80 di host ke port 80 di dalam container.
  • nginx: Nama image yang digunakan untuk membuat container.

Contoh di atas akan menjalankan container berbasis image Nginx dan memetakan port 80 di host agar Anda bisa mengakses server web melalui http://localhost:80.

Anda juga bisa memeriksa container yang sedang berjalan dengan perintah:

sudo docker ps

Jika Anda ingin menghentikan container, gunakan perintah berikut:

sudo docker stop nama-container

Dan untuk menghapus container:

sudo docker rm nama-container

Perbedaan antara Containers dan Virtual Machines

Seringkali, orang membandingkan Docker Containers dengan Virtual Machines (VM). Keduanya memang memungkinkan Anda untuk menjalankan aplikasi di lingkungan terisolasi, tetapi ada beberapa perbedaan mendasar antara keduanya.

1. Arsitektur

  • Containers: Berjalan di atas kernel host yang sama, sehingga lebih ringan dan cepat. Setiap container hanya memiliki aplikasi dan dependensi yang dibutuhkan, tanpa harus mengemas seluruh sistem operasi.
  • Virtual Machines: Berjalan di atas hypervisor dan memerlukan sistem operasi lengkap di setiap VM. Ini berarti setiap VM membutuhkan lebih banyak resource, karena tidak hanya aplikasi yang harus dijalankan, tetapi juga OS.

2. Ukuran

  • Containers: Jauh lebih kecil dibandingkan VM. Karena container hanya mengemas aplikasi dan dependensinya, mereka menggunakan jauh lebih sedikit resource dibandingkan VM.
  • Virtual Machines: Lebih besar karena mereka mengemas seluruh OS di dalamnya. Setiap VM berisi kernel OS-nya sendiri, yang membuatnya lebih berat dan memakan lebih banyak resource.

3. Kecepatan Startup

  • Containers: Karena mereka lebih ringan, container dapat dimulai dalam hitungan detik. Tidak perlu mem-boot OS, hanya aplikasi yang perlu dijalankan.
  • Virtual Machines: Karena harus mem-boot seluruh OS, VM membutuhkan waktu lebih lama untuk startup, sering kali dalam hitungan menit.

4. Isolasi

  • Containers: Walaupun lebih ringan, container memberikan isolasi yang cukup kuat antar aplikasi. Namun, karena berbagi kernel yang sama, mereka kurang terisolasi dibandingkan VM.
  • Virtual Machines: Memberikan isolasi penuh karena setiap VM memiliki OS-nya sendiri. Namun, isolasi ini datang dengan biaya resource yang lebih tinggi.

5. Penggunaan Resource

  • Containers: Lebih hemat resource karena hanya mengemas aplikasi dan dependensi. Ini berarti Anda dapat menjalankan lebih banyak container pada satu mesin fisik dibandingkan dengan VM.
  • Virtual Machines: Karena setiap VM mengemas OS-nya sendiri, mereka memerlukan lebih banyak resource, baik CPU, RAM, maupun penyimpanan.

Kesimpulan

Docker Image dan Containers adalah inti dari teknologi Docker. Image bertindak sebagai blueprint yang dapat digunakan untuk membuat container. Anda dapat mengunduh image dari Docker Hub atau membuatnya sendiri menggunakan Dockerfile. Dengan container, Anda bisa menjalankan aplikasi secara efisien dan hemat resource dibandingkan menggunakan Virtual Machines. Memahami perbedaan antara container dan VM juga membantu dalam memilih solusi yang tepat untuk kebutuhan Anda.

Docker tidak hanya membantu dalam pengembangan, tetapi juga mempermudah proses deployment dan scaling aplikasi di berbagai platform, baik itu di server lokal maupun cloud.


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Polars adalah pustaka open-source untuk pemrosesan data yang ditulis dalam bahasa Rust, yang terkenal dengan efisiensi dan kecepatan. Polars dirancang untuk menangani analisis data secara paralel, memanfaatkan arsitektur modern komputer yang memiliki banyak inti CPU.

“Pelajari konsep Docker persistence dan teknik seperti Docker volumes, bind mounts, dan tmpfs untuk memastikan data tetap aman dan persisten dalam container. Dapatkan panduan lengkap di sini!”

AI dalam dunia fintech telah berkembang pesat, bukan sekadar teknologi baru yang tiba-tiba muncul. Teknologi ini telah lama digunakan untuk membantu pengambilan keputusan keuangan dan mendeteksi penipuan. Kini, AI dan subdomainnya, yaitu Machine Learning (ML), memberikan nilai tambah signifikan dalam berbagai aspek industri fintech. Apa saja manfaat utama teknologi ini bagi sektor keuangan dan perbankan? […]

Discover more from teknologi now

Subscribe now to keep reading and get access to the full archive.

Continue reading