Kali ini saya akan berbagi tentang apa itu Docker
A. Pengertian
Docker adalah proyek open-source yang mengotomatisasi penyebaran aplikasi di dalam wadah perangkat lunak . Kutipan fitur dari halaman web Docker:
Kontainer Docker membungkus perangkat lunak dalam filesystem lengkap yang berisi semua yang perlu dijalankan seperti kode, runtime, perkakas sistem, pustaka sistem - apapun yang dapat Anda instal di server. Ini menjamin bahwa hal itu akan selalu berjalan sama, terlepas dari lingkungan tempat tinggalnya.
Docker menyediakan lapisan tambahan abstraksi dan otomatisasi virtualisasi tingkat sistem operasi pada Windows dan Linux. Docker menggunakan fitur isolasi sumber daya dari kernel Linux seperti cgroup dan namespace kernel, dan sistem file berkemampuan serikat seperti OverlayFS dan lainnya untuk mengizinkan wadah "independen" dijalankan dalam satu contoh Linux, mewaspadai Overhead memulai dan memelihara mesin virtual
Dukungan kernel Linux untuk ruang nama sebagian besar mengisolasi pandangan aplikasi tentang lingkungan operasi, termasuk pohon proses, jaringan, ID pengguna dan sistem berkas yang terpasang, sedangkan cgroups kernel menyediakan pembatasan sumber daya, termasuk CPU, memori, blok I / O , Dan jaringan. Sejak versi 0.9, Docker menyertakan perpustakaan libcontainer sebagai caranya sendiri untuk secara langsung menggunakan fasilitas virtualisasi yang disediakan oleh kernel Linux, selain menggunakan antarmuka virtualisasi yang disarikan melalui libvirt, LXC (Linux Containers) dan systemd-nspawn
B. Overview
Sebagai tindakan dilakukan pada gambar dasar Docker, lapisan sistem berkas serikat dibuat dan didokumentasikan, sehingga setiap lapisan sepenuhnya menggambarkan bagaimana membuat ulang tindakan. Strategi ini memungkinkan gambar ringan Docker, karena hanya pembaruan lapisan yang perlu disebarkan (dibandingkan VM penuh, misalnya).
Docker menerapkan API tingkat tinggi untuk menyediakan wadah ringan yang menjalankan proses secara terpisah. Membangun di atas fasilitas yang disediakan oleh kernel Linux (terutama cgroup dan ruang nama), wadah Docker, tidak seperti mesin virtual, tidak memerlukan atau menyertakan sistem operasi yang terpisah. Sebaliknya, ini bergantung pada fungsi kernel dan menggunakan isolasi sumber daya (CPU, memori, blok I / O, jaringan, dll.) Dan ruang nama terpisah untuk mengisolasi tampilan aplikasi dari sistem operasi. Docker mengakses fitur virtualisasi kernel Linux baik secara langsung menggunakan perpustakaan libcontainer , yang tersedia seperti Docker 0.9, atau secara tidak langsung melalui libvirt, LXC (Linux Containers) atau systemd-nspawn.
Karena wadah Docker sangat ringan, server tunggal atau mesin virtual dapat menjalankan beberapa kontainer secara bersamaan. Sebuah analisis 2016 menemukan bahwa kasus penggunaan Docker yang khas melibatkan lima kontainer per host, namun banyak organisasi menjalankan 10 atau lebih.
Dengan menggunakan kontainer, sumber daya dapat diisolasi, layanan dibatasi, dan proses disiapkan untuk memiliki tampilan sistem pribadi yang hampir sepenuhnya pribadi dengan ruang ID proses mereka sendiri, struktur sistem file, dan antarmuka jaringan. Beberapa kontainer berbagi kernel yang sama, namun setiap kontainer dapat dibatasi hanya dengan menggunakan jumlah sumber daya yang ditetapkan seperti CPU, memori dan I / O.
Menggunakan Docker untuk membuat dan mengelola kontainer dapat menyederhanakan pembuatan sistem terdistribusi dengan memungkinkan beberapa aplikasi, tugas pekerja dan proses lainnya berjalan secara otonom pada satu mesin fisik atau di beberapa mesin virtual. Hal ini memungkinkan penggelaran node dilakukan saat sumber daya tersedia atau dibutuhkan lebih banyak node, memungkinkan platform sebagai platform (sistem) dari penerapan dan penskalaan untuk sistem seperti Apache Cassandra , MongoDB atau Riak . Docker juga menyederhanakan pembuatan dan pengoperasian antrian tugas atau beban kerja dan sistem terdistribusi lainnya.
C. Sejarah
Solomon Hykes memulai Docker di Prancis sebagai proyek internal di dotCloud, sebuah perusahaan platform-as-a-service, dengan kontribusi awal oleh insinyur dotCloud lainnya termasuk Andrea Luzzardi dan Francois-Xavier Bourlet. Jeff Lindsay juga terlibat sebagai kolaborator independen. Docker mewakili evolusi teknologi milik dotCloud, yang dibangun di atas proyek sumber terbuka sebelumnya seperti Cloudlets .
Docker dirilis sebagai open source pada bulan Maret 2013. Pada tanggal 13 Maret 2014, dengan diluncurkannya versi 0.9, Docker menjatuhkan LXC sebagai lingkungan eksekusi default dan menggantinya dengan library libcontainernya sendiri yang ditulis dalam bahasa pemrograman Go. Pada tanggal 24 Oktober 2015, proyek ini memiliki lebih dari 25.600 bintang GitHub (menjadikannya proyek GitHub terbagi ke-20), lebih dari 6.800 garpu, dan hampir 1.100 kontributor.
Referensi
https://en.wikipedia.org/wiki/Docker_(software)
0 comments