Apa Perbedaan antara Citra dan Kontainer Docker?

Citra dan kontainer Docker adalah teknologi deployment aplikasi. Secara tradisional, untuk menjalankan aplikasi apa pun, Anda harus menginstal versi yang cocok dengan sistem operasi mesin Anda. Namun, kini Anda dapat membuat satu paket perangkat lunak, atau kontainer, yang berjalan di semua tipe perangkat dan sistem operasi. Docker adalah platform perangkat lunak yang mengemas perangkat lunak ke dalam kontainer. Citra Docker adalah templat hanya-baca yang berisi instruksi untuk membuat kontainer. Citra Docker adalah snapshot atau cetak biru pustaka dan dependensi yang diperlukan di dalam kontainer untuk menjalankan aplikasi.

Baca tentang Docker »

Mengapa citra dan kontainer Docker digunakan?

Kontainer memungkinkan developer untuk mengemas perangkat lunak agar berjalan pada sistem target apa pun. Sebelumnya, Anda harus mengemas perangkat lunak khusus untuk sistem target yang berbeda. Misalnya, jika Anda ingin aplikasi berjalan di macOS dan Windows, Anda harus mengubah desain aplikasi dan mengemasnya untuk sistem yang berbeda.

Kontainerisasi memungkinkan aplikasi perangkat lunak berjalan sebagai layanan mikro di seluruh arsitektur perangkat keras lintas platform yang terdistribusi. Karena kontainer sangat portabel, aplikasi perangkat lunak ini berjalan di hampir semua mesin dengan deployment yang cepat. Misalnya, aplikasi korporasi mungkin memiliki ratusan layanan mikro. Layanan mikro tersebut dapat berjalan sebagai kontainer di beberapa mesin dan mesin virtual (VM) di pusat data khusus dan cloud.

Cara kerja: Citra Docker vs. Kontainer Docker

Docker adalah platform kontainerisasi yang dapat Anda gunakan untuk mengemas perangkat lunak dalam kontainer dan menjalankannya pada mesin target. Kontainer Docker berjalan di mesin atau mesin virtual apa pun tempat mesin Docker diinstal. Kontainer ini berjalan tanpa mengetahui arsitektur sistem yang mendasarinya. Mesin Docker hanya berjalan pada sistem operasi Linux. Kontainer Docker adalah kontainer yang dibuat menggunakan platform kontainerisasi Docker. Ada pula platform kontainerisasi lain yang kurang populer.

Baca tentang kontainerisasi »

Cara kerja kontainer Docker

Kontainer Docker adalah lingkungan runtime yang dilengkapi dengan semua komponen penting, seperti kode, dependensi, dan pustaka, yang diperlukan untuk menjalankan kode aplikasi tanpa menggunakan dependensi mesin host. Runtime kontainer ini berjalan pada mesin di server, mesin, atau instans cloud. Mesin menjalankan beberapa kontainer tergantung pada sumber daya dasar yang tersedia. 

Untuk melakukan deployment dan menskalakan satu set kontainer agar berkomunikasi secara efektif di berbagai mesin atau mesin virtual, Anda memerlukan platform orkestrasi kontainer, seperti Kubernetes. Hal ini membantu, baik mesin Anda berada di cloud atau on-premise. Kubernetes mengelola beberapa mesin, yang dikenal sebagai klaster, dalam konteks operasi kontainer.

Baca tentang Kubernetes »

Cara kerja citra Docker

Citra Docker, atau citra kontainer, adalah file mandiri yang dapat dieksekusi yang digunakan untuk membuat kontainer. Citra kontainer ini berisi semua pustaka, dependensi, dan file yang dibutuhkan kontainer untuk berjalan. Citra Docker dapat dibagikan dan bersifat portabel sehingga Anda dapat melakukan deployment citra yang sama di beberapa lokasi sekaligus, seperti file biner perangkat lunak. 

Anda dapat menyimpan citra dalam registri untuk terus melacak arsitektur perangkat lunak, proyek, segmen bisnis, dan akses grup pengguna yang kompleks. Misalnya, registri Docker Hub publik berisi citra, seperti sistem operasi, kerangka kerja bahasa pemrograman, basis data, dan editor kode. 

Perintah utama: Citra Docker vs. Kontainer Docker

Anda menggunakan perintah dengan parameter untuk memanipulasi kontainer Docker. Format perintah standar adalah docker [options] [command] [arguments].

Perintah kontainer

Tabel berikut berisi perintah kontainer yang sering digunakan. Ada beberapa lagi yang tercantum dalam dokumentasi Docker.

Perintah

Penjelasan

docker ps -a

Daftar semua kontainer. Bendera -a menunjukkan kontainer yang berjalan dan tidak berjalan. Agar yang ditampilkan hanya kontainer yang sedang berjalan, bendera ini dapat dihilangkan.

docker rename [container] [new_name]

Mengganti nama kontainer yang diberikan menjadi new_name.

docker start [container]

Menjalankan kontainer yang diberikan.

docker stop [container]

Menghentikan kontainer yang diberikan.

docker wait [container]

Membuat kontainer yang diberikan menunggu hingga kontainer lain yang sedang berjalan berhenti.

Perintah citra

Perintah citra lebih sedikit dibandingkan dengan perintah kontainer.

Docker build -t image_name .

Membangun citra Docker dengan tanda image_name dari file di direktori saat ini.

docker create [image]

Membuat kontainer yang tidak berjalan dari citra yang diberikan.

docker run [image] 

Membuat dan menjalankan kontainer berdasarkan citra yang diberikan.

Membuat kontainer Docker dari citra Docker

Untuk membuat kontainer dari citra Docker tertentu, mulai mesin pada suatu mesin. Kemudian, gunakan perintah dasar aktivasi Docker.

Berikut adalah contoh perintah:

docker run -it MyImage bash

Perintah ini membuat kontainer dari file citra bernama MyImage. -it menciptakan pseudo-terminal dalam kontainer yang sedang berjalan. Dengan menentukan bash sebagai perintah, terminal bash terbuka di dalam kontainer.

Perbedaan utama: Citra Docker vs. Kontainer Docker

Kontainer Docker adalah aplikasi atau layanan perangkat lunak mandiri yang dapat dijalankan. Di sisi lain, citra Docker adalah templat yang dimuat ke kontainer untuk menjalankannya, seperti serangkaian instruksi.

Anda menyimpan citra untuk dibagikan dan digunakan kembali, tetapi Anda membuat dan menghancurkan kontainer selama siklus hidup aplikasi. Kami akan menjelaskan lebih banyak perbedaannya di bagian selanjutnya.

Sumber

Anda membuat citra Docker dari Dockerfile, teks yang dapat dibaca manusia yang mirip dengan file konfigurasi. Dockerfile berisi semua instruksi untuk membuat citra. Anda harus menempatkan Dockerfile bersama dengan semua pustaka dan dependensi terkait dalam folder untuk membuat citra.

Sebaliknya, Anda membuat kontainer Docker langsung dari file citra Docker. 

Komposisi

File citra Docker terdiri dari lapisan citra untuk menjaga ukuran file tetap kecil.  Setiap lapisan merepresentasikan perubahan yang dilakukan pada citra. Lapisan bersifat hanya baca dan dapat dibagi di antara beberapa kontainer.

Kontainer Docker, yang berfungsi sebagai instans citra, juga berisi lapisan. Namun, kontainer tersebut memiliki lapisan tambahan yang dapat ditulis, yang dikenal sebagai lapisan kontainer, di atasnya. Lapisan kontainer memungkinkan akses baca-tulis. Lapisan kontainer juga memungkinkan setiap perubahan yang dibuat dalam kontainer untuk diisolasi dari kontainer lain berdasarkan citra yang sama.

Mutabilitas

Citra Docker tidak dapat diubah, yang berarti tidak dapat dimodifikasi setelah dibuat. Jika perubahan perlu dilakukan pada citra, Anda harus membuat citra baru dengan modifikasi yang diinginkan.

Sebaliknya, kontainer dapat diubah dan memungkinkan modifikasi selama runtime. Perubahan yang dibuat dalam kontainer diisolasi ke kontainer tertentu dan tidak memengaruhi citra yang terkait. Beberapa contoh perubahan adalah ketika Anda menulis file baru, menginstal perangkat lunak, atau memodifikasi konfigurasi.

Kapan digunakan: Citra Docker vs. Kontainer Docker

Anda dapat menggunakan citra dan kontainer Docker yang dikombinasikan satu sama lain saat Anda membuat dan melakukan deployment perangkat lunak.

Anda menggunakan kontainer untuk membangun aplikasi satu kali dan menjalankannya di mana saja. Anda dapat memulai, menghentikan, dan memulai ulang kontainer sesuai kebutuhan dengan cepat. Sehingga, mudah untuk menaikkan atau menurunkan skala berdasarkan permintaan aplikasi.

Oleh karena itu, manajemen menjadi lebih mudah saat Anda menggunakan citra dan kontainer. Misalnya, berikut adalah cara agar Anda dapat menggunakannya bersama-sama:

  • Skalakan aplikasi Anda secara horizontal dengan menjalankan beberapa instans kontainer berdasarkan citra yang sama.
  • Otomatiskan jalur integrasi dan deployment berkelanjutan (CI/CD) menggunakan citra yang berbeda untuk lingkungan pengembangan, pengujian, dan produksi.
  • Tandai dan kelola berbagai versi citra Anda. Hal ini membantu Anda mengembalikan atau melakukan deployment versi tertentu sesuai kebutuhan.

Ringkasan perbedaan: Citra Docker vs. Kontainer Docker

 

Citra Docker

Kontainer Docker

Apa itu?

File yang dapat digunakan kembali dan dapat dibagikan yang digunakan untuk membuat kontainer.

Instans runtime; perangkat lunak mandiri.

Dibuat dari

Kode perangkat lunak, dependensi, pustaka, dan Dockerfile.

Citra.

Komposisi

Lapisan hanya baca.

Lapisan hanya baca dengan lapisan hanya baca tambahan di atasnya.

Mutabilitas

Tidak dapat diubah. Jika ada perubahan, Anda harus membuat file baru.

Dapat diubah; Anda dapat mengubahnya saat runtime sesuai kebutuhan.

Kapan digunakan

Saat ingin menyimpan detail konfigurasi aplikasi sebagai templat. 

Saat ingin menjalankan aplikasi.

Bagaimana AWS dapat membantu kebutuhan kontainer dan citra Anda?

Amazon Web Services (AWS) memiliki banyak penawaran yang memberikan tempat yang aman untuk menyimpan dan mengelola citra kontainer Anda.

Kami menawarkan orkestrasi yang mengatur waktu dan tempat kontainer Anda dijalankan serta mesin komputasi fleksibel yang mendukung kontainer Anda. AWS dapat membantu mengelola kontainer dan deployment-nya untuk Anda, sehingga Anda tidak perlu khawatir mengenai infrastruktur yang mendasarinya. Untuk informasi selengkapnya, buka Kontainer di AWS.

Amazon Elastic Container Registry (Amazon ECR) adalah registri kontainer terkelola penuh yang menawarkan host beperforma tinggi. Jadi, Anda dapat melakukan deployment citra dan artefak aplikasi dengan andal di mana saja. Developer yang membangun aplikasi berbasis kontainer kini dapat menemukan dan mengunduh Citra Resmi Docker langsung dari Amazon ECR Public.

Amazon Elastic Container Service (Amazon ECS) adalah layanan orkestrasi kontainer terkelola penuh. Layanan ini memudahkan Anda untuk melakukan deployment, mengelola, dan menskalakan aplikasi terkontainer. Amazon ECS menggunakan citra Docker dalam ketentuan tugas untuk meluncurkan kontainer.

Mulai Docker di AWS dengan membuat akun sekarang juga.

Langkah Berikutnya dengan AWS