Saya baru saja mulai belajar Docker dan ada sesuatu yang cukup membingungkan bagi saya. Seperti yang saya baca di situs web Docker, wadah berbeda dari mesin virtual. Seperti yang saya pahami sebuah wadah hanyalah sebuah kotak pasir di mana seluruh sistem file terisolasi dijalankan.
Saya juga membaca bahwa sebuah wadah tidak memiliki OS Guest diinstal. Sebaliknya itu bergantung pada OS Kernel yang mendasarinya.
Semua itu baik-baik saja. Yang saya bingung adalah bahwa ada gambar Docker dinamai sistem operasi. Kami melihat gambar seperti Ubuntu, Debian, Fedora, CentOS dan sebagainya.
Maksud saya adalah: gambar apa itu? Apa bedanya membuat wadah berdasarkan gambar Debian daripada membuat Mesin Virtual dan menginstal Debian?
Saya pikir kontainer tidak memiliki OS Guest diinstal, tetapi ketika kita membuat gambar kita mendasarkannya pada beberapa gambar dinamai satu OS.
Juga, dalam contoh yang saya lihat ketika kita melakukannya docker run ubuntu echo "hello world"
, sepertinya kita memutar VM dengan Ubuntu dan membuatnya menjalankan perintah echo "hello world"
.
Dengan cara yang sama ketika kita melakukannya docker run -it ubuntu /bin/bash
, tampaknya kita memutar VM dengan Ubuntu dan mengaksesnya menggunakan baris perintah.
Ngomong-ngomong, gambar apa yang dinamai sesuai dengan sistem operasi? Betapa berbedanya menjalankan wadah dengan salah satu gambar itu dan memutar VM dengan OS Tamu yang sesuai?
Adalah gagasan bahwa kita hanya berbagi kernel dengan OS host (dan akibatnya kita memiliki akses ke sumber daya perangkat keras mesin yang mendasarinya, tanpa perlu memvirtualkan perangkat keras), tetapi masih menggunakan file dan binari dari setiap sistem yang berbeda pada wadah agar untuk mendukung aplikasi apa pun yang ingin kita jalankan?