Posted by : Unknown
Saturday, April 29, 2017
Mengenal Docker
Selamat siang semua pada hari senin lalu, lebih tepatnya saat sedang berlangsungnya acara Pre-Training MTCNA & CentOS, Mas Gulo sempat membahas tentang docker. Karena pada sebelumnya saya hanya membahas sedikit saja maka dari itu saya ingin menambahkan sedikit lagi.
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)