yang Efisien
Posted by :FlyingEagle On : Agustus 12, 2016
2
Category:Docker
Tags:istilah-istilah docker, tentang docker
8
Docker adalah sebuah platform terbuka untuk mengembangkan, menyebarkan, dan
menjalankan aplikasi. Docker dirancang untuk membuat aplikasi lebih cepat. Anda
dapat memisahkan aplikasi dari infrastruktur dan memperlakukan infrastruktur seperti
aplikasi yang dikelola. Docker membantu pembangunan kode lebih cepat, uji coba lebih
cepat, dna menyebarkan lebih cepat, dan memperpendek siklus antara menulis kode
hingga kode tersebut dijalankan. Pengenalan Docker ini bermanfaat untuk pemahaman
awal para calon pengguna docker di seluruh Nusantara.
Pengenalan Docker
Docker dapat mempercepat kinerja infrastruktur IT dengan menggabungkan fitur kernel
containerization dengan alur kerja dan perkakas yang membantu anda mengelola dan
menyebarkan aplikasi. Dalam pengenalan docker ada beberapa istilah-istilah yang perlu
di pahami.
Disekitar wadah adalah perkakas dan platform yang dapat membantu anda dalam
beberapa cara:
CLI memanfaatkan Docker REST API untuk mengontrol atau berinteraksi dengan
Docker daemon melalui scripting atau perintah CLI langsung. Banyak aplikasi lain
Docker memanfaatkan dasar API dan CLI.
Misalnya, pengembang anda menulis kode secara lokal dan berbagi pengembangan
mereka melalui Docker dengan rekan-rekan mereka. Ketika mereka siap, mereka dapat
mendorong kode dan pekerjaan lain yang dikembangkan ke sebuah lingkungan
pengujian dan melakukan tes yang diperlukan. Dari lingkungan pengujian, anda
kemudian dapat mendorong Docker Image ke dalam produksi dan menyebarkan kode
anda.
Mencapai Kepadatan yang Lebih Tinggi dan Menjalankan Beban Kerja yang Lebih
Docker sangat ringan dan cepat. Ini memberikan alternatif, efektifitas biaya untuk
mesin virtual berbasis hypervisor. Hal ini sangat berguna di lingkungan kepadatan
tinggi: misalnya, membangun Cloud anda sendiri atau platform-as-a-Service (PaaS).
Tetapi juga berguna untuk penyebaran kecil dan menengah di mana anda ingin
mendapatkan lebih banyak dari sumber daya yang anda miliki.
Arsitektur Docker
Docker menggunakan arsitektur client-server. Klien Docker berkomunikasi dengan
daemon Docker, yang melakukan pekerjaan berat untuk membangun, menjalankan,
dan mendistribusikan wadah Docker anda. Kedua klien Docker dan daemon dapat
berjalan pada sistem yang sama, atau anda dapat menghubungkan klien Docker ke
daemon Docker secara remote. Klien Docker dan daemon berkomunikasi melalui soket
atau melalui REST API.
Docker daemon
Seperti ditunjukkan dalam diagram di atas, daemon Docker berjalan pada mesin host.
pengguna tidak langsung berinteraksi dengan daemon, melainkan melalui klien Docker.
Docker client
Docker client, dalam bentuk docker biner, adalah antarmuka pengguna utama untuk
Docker. Docker client untuk menerima perintah dari pengguna dan berkomunikasi
bolak-balik dengan Docker daemon.
Docker Image
Docker Registry
Docker Container
Docker Image
Sebuah Docker Image adalah template read-only. Sebagai contoh, sebuah Image bisa
berisi sistem operasi Ubuntu dengan Apache dan aplikasi web yang anda instal. Image
digunakan untuk membuat wadah Docker. Docker menyediakan cara yang mudah
untuk membangun Image baru atau memperbarui Image yang ada, atau anda dapat
men-download Docker Image yang dibuat oleh orang lain. Docker Image adalah
komponen pembangunan di Docker.
Docker Registry
Docker rergistry berisi Image. Ini merupakan penyimpanan umum atau pribadi dari
Image yang di upload atau di download. Registri Docker publik disediakan dengan
Docker Hub. Docker Registry melayani koleksi Image yang ada untuk digunakan. Ini
dapat merupakan Image yang anda buat sendiri atau anda dapat menggunakan Image
lain yang telah dibuat sebelumnya. Docker registry adalah komponen distribusi Docker.
Docker Container
Docker container mirip dengan direktori. Sebuah kontainer Docker memegang segala
sesuatu yang diperlukan untuk menjalankan aplikasi. Setiap kontainer diciptakan dari
Docker Image. Kontainer Docker dapat dijalankan, dimulai, berhenti, di pindah, dan
dihapus. Setiap kontainer adalah sebuah platform aplikasi terisolasi secara aman.
Kontainer Docker adalah komponen untuk menjalankan Docker.
Atau sering disebut UnionFS, merupakan file sistem yang beroperasi dengan
menciptakan lapisan, sehingga sangat ringan dan cepat. Docker Engine menggunakan
file sistem union untuk memberikan blok bangunan pada kontainer. Docker Engine
dapat menggunakan beberapa sistem file union seperti: AUFS, btrfs, vfs, dan
DeviceMapper.
Salah satu alasan Docker begitu ringan adalah karena lapisan ini. Bila Anda mengubah
Docker image, sebagai contoh : memperbarui aplikasi ke versi terbaru maka layer baru
juga akan dibangun. Jadi, daripada mengganti seluruh Image atau membangun kembali
secara keseluruhan, karena anda mungkin dapat lakukan dengan mesin virtual, hanya
lapisan saja yang ditambahkan atau diperbarui. Sekarang anda tidak perlu
mendistribusikan Image baru, hanya update, membuat penyebaran Docker Image lebih
cepat dan sederhana.
Setiap Image dimulai dari basis Image, misalnya ubuntu, basis Image Ubuntu, atau
fedora, basis Image Fedora. Anda juga dapat menggunakan Image anda sendiri sebagai
basis untuk Image baru, misalnya jika anda memiliki basis Image Apache maka anda
bisa menggunakan ini sebagai dasar semua Image aplikasi web Anda.
Docker Image kemudian dibangun dari semua basis Image secara sederhana, set
deskriptif langkah kita sebut petunjuk. Setiap instruksi menciptakan lapisan baru di
Image kita. Instruksi mencakup tindakan seperti:
Menjalankan perintah
Menambahkan file atau direktori
Membuat variabel lingkungan
Proses apa saja yang harus dijalankan ketika meluncurkan sebuah wadah dari
Image
Instruksi ini disimpan dalam sebuah file yang disebut Dockerfile. Sebuah Dockerfile
adalah script berbasis teks yang berisi petunjuk dan perintah untuk membangun Image
dari basis Image. Docker membaca Dockerfile ini ketika anda meminta membangun
dari suatu image, mengeksekusi instruksi, dan mengembalikan Image akhir.
Menggunakan klien Docker, anda dapat mencari Image yang sudah diterbitkan dan
kemudian menarik mereka ke Host Docker anda untuk membangun wadahnya.
Docker Hub menyediakan baik penyimpanan publik dan private untuk Image.
Penyimpanan publik dapat dicari dan dapat didownload oleh siapa saja. Penyimpanan
pribadi dikecualikan dari hasil pencarian dan hanya anda sertqa pengguna tertentu
yang dapat menarik Image ke bawah dan menggunakannya untuk membangun wadah
atau kontainer. Anda dapat mendaftar untuk paket penyimpanan pada data
center sesuai lokasi bisnis anda.
Cara Kerja Kontainer
Sebuah kontainer terdiri dari sistem operasi, file yang ditambahkan pengguna, dan
meta-data. Seperti yang kita ketahui, setiap kontainer dibangun dari sebuah Image.
Image yang memberitahu Docker isi container, proses apa yang harus dijalankan ketika
contaoner diluncurkan, dan berbagai data konfigurasi lainnya. Docker Image dalam
keadaan read-only. Ketika Docker menjalankan container dari sebuah Image, ia
menambahkan lapisan read-write di atas Image (menggunakan sistem union file seperti
penjelasan diatas) di mana aplikasi anda kemudian dapat berjalan.
Apa yang terjadi ketika Container Docker dijalankan ?
Baik dengan menggunakan Docker biner atau melalui API, klien Docker memberitahu
daemon Docker untuk menjalankan sebuah container.
Klien Docker Engine diluncurkan menggunakan docker biner dengan pilihan run untuk
menjalankan container yang baru. Minimal Docker client perlu memberitahu Docker
daemon untuk menjalankan container sebagai berikut:
Menarik image ubuntu: Docker Engine memeriksa kehadiran Image ubuntu. Jika
Image sudah ada, maka Docker Engine menggunakan itu untuk sebuah container baru.
Jika tidak ada secara lokal pada host, kemudian Docker Engine dapat menarik dari
Docker Hub.
Membuat container baru: Setelah Docker Engine memiliki Image, dia akan
menggunakan itu untuk membuat sebuah Container.
Mengalokasikan filesystem dan memberikan lapisan read-write: Containr ini
dibuat dalam sistem file dan lapisan read-write yang ditambahkan ke Image.
Mengalokasikan jaringan / antarmuka bridge: Membuat antarmuka jaringan
yang memungkinkan container Docker untuk berkomunikasi dengan host lokal.
Mengatur alamat IP: Mencari dan menempelkan alamat IP yang tersedia dari
sebuah pool.
Mengeksekusi proses yang anda tentukan: Menjalankan aplikasi anda, dan
Mangkap serta memberikan keluaran aplikasi: Menghubungkan dan membuat log
standar untuk input, output dan kesalahan untuk anda sehingga anda dapat melihat
bagaimana aplikasi anda berjalan.
Setelah aplikasi berjalan, anda dapat merubah, mengkonfigurasi, dan ketika aplikasi
telah selesai dan siap di distribusikan ada dapat hapus kontainer aplikasi anda.
Sebelum lebih lanjut mengenai docker, ada baiknya menonton video pengenalan docker
dibawah ini untuk mengulang apa yang telah anda pahami.