Lewati ke Konten Utama

Apa Perbedaan antara Gambar dan Kontainer Docker?

Apa Perbedaan antara Gambar dan Kontainer Docker?

Gambar dan kontainer Docker adalah teknologi deployment aplikasi. Secara tradisional, untuk menjalankan aplikasi, 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. Gambar Docker adalah templat hanya baca yang berisi instruksi untuk membuat kontainer. Gambar Docker adalah snapshot atau cetak biru pustaka dan dependensi yang diperlukan di dalam kontainer untuk menjalankan aplikasi.

Baca tentang Docker »

Mengapa gambar 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 dan cloud khusus.

Cara kerja: gambar 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 selama 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 juga platform kontainerisasi lain yang kurang populer.

Baca mengenai 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 set kontainer agar berkomunikasi secara efektif di berbagai mesin atau mesin virtual, Anda memerlukan platform orkestrasi kontainer, seperti Kubernetes. Hal ini tetap bermanfaat baik saat mesin Anda berada di lingkungan on-premise maupun di cloud. Kubernetes mengelola beberapa mesin, yang dikenal sebagai klaster, dalam konteks operasi kontainer.

Baca mengenai Kubernetes »

Cara kerja gambar Docker

Gambar Docker, atau gambar kontainer, adalah file mandiri yang dapat dijalankan yang digunakan untuk membuat kontainer. Gambar kontainer ini berisi semua pustaka, dependensi, dan file yang dibutuhkan kontainer untuk dijalankan. Gambar Docker dapat dibagikan dan bersifat portabel sehingga Anda dapat melakukan deployment gambar yang sama di beberapa lokasi sekaligus—seperti file binari perangkat lunak. 

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

Perintah utama: Gambar Docker vs. Kontainer Docker

Anda menggunakan perintah dengan parameter untuk memanipulasi kontainer Docker. Format perintah standar adalah docker [opsi] [perintah] [argumen].

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 dengan nama_baru.

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 gambar

Perintah gambar lebih sedikit dibandingkan dengan perintah kontainer.

Docker build -t image_name .

Membangun gambar Docker dengan tanda nama_gambar dari file di direktori saat ini.

docker create [image]

Membuat kontainer yang tidak berjalan dari gambar yang diberikan.

docker run [image] 

Membuat dan menjalankan kontainer berdasarkan gambar yang diberikan.

Membuat kontainer Docker dari gambar Docker

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

Berikut adalah contoh perintah:

docker run -it MyImage bash

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

Perbedaan utama: gambar Docker vs. Kontainer Docker

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

Anda menyimpan gambar 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 gambar Docker dari Dockerfile, file teks yang dapat dibaca manusia yang mirip dengan file konfigurasi. Dockerfile berisi semua instruksi untuk membuat gambar. Anda harus menempatkan Dockerfile bersama dengan semua pustaka dan dependensi terkait dalam satu folder untuk membuat gambar.

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

Komposisi

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

Kontainer Docker, yang berfungsi sebagai instans gambar, 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 gambar yang sama.

Mutabilitas

Gambar Docker tidak dapat diubah, yang berarti tidak dapat diubah setelah dibuat. Jika perubahan perlu dilakukan pada gambar, Anda harus membuat gambar 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 gambar yang terkait. Beberapa contoh perubahan adalah saat Anda menulis file baru, menginstal perangkat lunak, atau mengubah konfigurasi.

Waktu penggunaan: Gambar Docker vs. Kontainer Docker

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

Dengan menggunakan kontainer, aplikasi cukup dibangun satu kali, lalu dapat dijalankan di mana saja. Anda dapat memulai, menghentikan, dan memulai ulang kontainer sesuai kebutuhan dengan cepat. Jadi, menaikkan atau menurunkan skala berdasarkan permintaan aplikasi menjadi mudah dilakukan.

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

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

Ringkasan perbedaan: Gambar Docker vs. Kontainer Docker

 

Gambar 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.

Gambar.

Komposisi

Lapisan hanya baca.

Lapisan hanya baca dengan lapisan baca tulis tambahan di atasnya.

Mutabilitas

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

Dapat diubah; Anda dapat mengubahnya saat runtime sesuai kebutuhan.

Waktu penggunaan

Saat ingin menyimpan detail konfigurasi aplikasi sebagai templat. 

Saat ingin menjalankan aplikasi.

Bagaimana AWS dapat membantu kebutuhan kontainer dan gambar Anda?

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

Kami menawarkan orkestrasi yang mengelola 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 hosting beperforma tinggi. Jadi, Anda dapat melakukan deployment gambar dan artefak aplikasi dengan andal di mana saja. Developer yang membangun aplikasi berbasis kontainer kini dapat menemukan dan mengunduh Gambar 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 terkontainerisasi. Amazon ECS menggunakan gambar Docker dalam ketentuan tugas untuk meluncurkan kontainer.

Mulai Docker di AWS dengan membuat akun sekarang juga.