Tutorial Docker - Image dan Container

    Pada materi kali ini, kita akan melanjutkan seri dari Tutorial Docker. Setelah sebelumnya kita membahas tentang Apa Itu Docker dan Konsep Kontainer kita akan masuk ke materi tentang Image dan Container.

Catatan : Untuk instalasi docker temen-temen bisa langsung unduh dan install dari website dockernya atau klik disini.

Silahkan temen-temen sesuaikan dengan sistem operasi yang digunakan.

    Sekarang kita kembali lagi ke materi utama tentang Docker Image dan Docker Container, Namun sebelum membahas Docker Image mari kita pahami dulu arsitektur dari Docker.

    Pada gambar di atas, terdapat tiga komponen utama: Client, Docker Host, dan Registry. Namun, sebenarnya ketiga komponen tersebut berada dalam satu sistem operasi yang sama. 

Berikut penjelasan sederhananya :
  1. Client
    Ini adalah tempat pengguna berinteraksi dengan Docker Daemon, di mana komunikasi terjadi melalui perintah yang diketik menggunakan Docker CLI dan dikirim menggunakan REST API.
  2. Docker Host
    Docker Host adalah tempat atau lingkungan berjalannya Docker Daemon, dimana Docker Daemon sendiri memiliki tugas untuk memanajemen Image, Container, Volume dan Network. 
  3. Registry
    Komponen Registry adalah tempat menyimpan image, perannya hampir mirip seperti Github/Gitlab untuk menyimpan projek secara terpusat. Terdapat beberapa Registry yang bisa temen-temen gunakan untuk menyimpan Image diantaranya :
    a. Docker Hub (Registry Public dari Docker)
    b. Azure Container Registry
    c. Google Container Registry
    d. Digital Ocean Container Registrty

    Supaya lebih mudah dipahami, di sini saya akan memberikan gambaran sederhana tentang cara kerja Docker. Sebagai contoh, kita akan membuat sebuah container yang berisi database MySQL dan antarmuka GUI-nya menggunakan phpMyAdmin.

  1. Langkah pertama kita akan menjalankan perintah docker run dengan Docker CLI.
  2. Setelah printah dijalankan, Docker Daemon akan memproses perintah tersebut.
  3. Saat proses berjalan Docker Daemon akan mengecek apakah image MySQL dan phpMyadmin sudah terinstall di local komputer kita, kalau belum Docker Daemon akan otomatis mengunduh image yang diperlukan ke Registry.
    Semoga saja sampai sini temen-temen bisa memahami cara kerja dari Docker, selanjutnya mari kita bahas tentang Docker Image.

Apa Itu Docker Image?
    Docker Image adalah template atau blueprint (read-only) yang digunakan untuk membuat container dalam Docker. Docker Image bersifat immutable (tidak bisa diubah) dan memiliki struktur yang berlapis (Layered Structure), karena 2 sifat itu ketika ada perubahan dalam Image maka docker akan membuat Image baru diatas Image sebelumnya.

    Dari kata "Membuat Container" temen-temen bisa menganalogikan Docker Image sebagai Resep masakan, temen-temen gak akan makan resep secara langsung. Tapi, bisa membuat masakan (Container) berdasarkan resep tersebut.

Contoh Docker Image :

Apa Itu Container?
    Container adalah paket ringan yang menggabungkan aplikasi beserta semua dependensinya (seperti library, konfigurasi, dan binary) dalam lingkungan yang terisolasi. Kontainer memastikan aplikasi berjalan konsisten di berbagai lingkungan, tanpa dipengaruhi oleh sistem operasi atau konfigurasi eksternal.

Karakteristik Container :
  1. Ringan
    Karena Container hanya berisi aplikasi dan dependensinya, maka ukuran dari container lebih kecil dibandingkan dengan virtual machine.
  2. Isolasi
    Setiap Container berjalan secara terisolasi, hal ini memungkinkan jika Container 1 terjadi error/crash maka tidak akan mengganggu ke container lain.
  3. Portabilitas
    Karena Container membawa semua dependensinya, maka aplikasi bisa dijalankan dimana saja  (Local, Server dan Cloud) tanpa harus ada konfigruasi tambahan.
  4. Berbasis Image
    Container dibuat dari Docker Image yang berisi blueprint dari aplikasi, termasuk dependensi dan konfigurasinya.
    Pada materi kali ini, kita telah sama-sama belajar tentang 2 komponen utama dalam Docker yaitu Docker Image dan Docker Container. Selain itu kita juga telah mempelajari arsitektur dasar dari Docker yang melibatkan Client, Docker Host dan Registry.

    Sederhananya, teman-teman bisa menganalogikan Docker Image sebagai sebuah resep masakan. Resep tersebut tidak bisa langsung dimakan, tetapi kita bisa menggunakannya untuk membuat masakan. Docker Container adalah masakan yang dibuat dari resep tersebut, kita dapat memodifikasi atau menghabiskan masakan tanpa mengubah resep aslinya.

    Mungkin itu saja yang bisa kita pelajari dari materi kali ini. Semoga materinya dapat membantu teman-teman memahami tentang Docker Image, Docker Container dan Arsitektur Dasar dari Docker. Jika teman-teman memiliki pertanyaan atau ingin berbagi pengalaman, silakan ketikkan pada kolom komentar di bawah.

Sedikit Tentang Saya :

    Sebagai seorang programmer profesional dengan pengalaman sekitar 4 tahun di bidang IT, saya siap membantu Anda dengan berbagai kebutuhan konsultasi.

Jangan ragu untuk menghubungi saya melalui WhatsApp.

Sampai jumpa di tutorial berikutnya!

Kontak Saya :
Email : ronisurya.115@gmail.com
WhatsApp : 081222821596
Website : Roni Surya

Tutorial Selanjutnya : Tutorial Docker - Implementasi Image dan Container

Tutorial Sebelumnya :

  1. Tutorial Docker - Mengenal Docker dan Konsep Kontainer

Lebih baru Lebih lama