Anda di halaman 1dari 8

Pengenalan Docker Sebagai Platform

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.

Definisi Docker Platform


Pada intinya, Docker menyediakan cara untuk menjalankan hampir semua aplikasi
secara aman yang terisolasi dalam sebuah wadah. Isolasi dan keamanan
memungkinkan anda untuk menjalankan banyak wadah secara bersamaan pada host
anda. Sifat ringan dari kontainer, yang berjalan tanpa beban tambahan hypervisor,
berarti anda bisa lebih mengoptimalkan kegunaan hardware Anda.

Disekitar wadah adalah perkakas dan platform yang dapat membantu anda dalam
beberapa cara:

Meletakan aplikasi anda (dan komponen pendukung) ke dalam wadah Docker


Mendistribusikan dan mengirimkan kontainer ke tim anda untuk pengujian dan
pengembangan lebih lanjut
Menyebarkan aplikasi tersebut ke lingkungan produksi anda, apakah itu di
sebuah data center lokal atau Cloud
Definisi Docker Engine
Docker Engine adalah aplikasi client-server dengan komponen-komponen utama:
Sebuah server dengan jenis program long-running disebut proses daemon.
Sebuah REST API yang menentukan interface yang dapat digunakan program
untuk berbicara dengan daemon dan menginstruksikan apa yang harus dilakukan.
Sebuah klien antarmuka baris perintah (Command Line Interface / CLI).

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.

Daemon mengkreasikan dan mengelola objek-objek Docker. Yang termasuk Docker


object adalah image, kontainer, network, volume data, dan sebagainya.

Apa Saja Kegunaan Docker ?


Pengiriman Aplikasi Lebih Cepat
Docker dapat membantu siklus pengembangan anda. Docker memungkinkan
pengembang untuk mengembangkan pada wadah lokal yang berisi aplikasi dan
layanan. Hal ini kemudian dapat di integrasikan ke dalam integrasi dan penyebaran alur
kerja secara terus menerus.

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.

Memudahkan Penyebaran dan Scaling


Platform berbasis kontainer Docker memungkinkan untuk beban kerja yang sangat
portabel. Kontainer Docker dapat berjalan pada host lokal pengembang, pada mesin
fisik atau virtual di sebuah data center, atau di Cloud.

Portabilitas Docker dengan keringanan yang di usung Docker, dapat membuat


pengelolaan beban kerja dinamis menjadi lebih mudah. Anda dapat menggunakan
Docker untuk cepat meningkatkan atau menghapus suatu aplikasi dan layanan.
Kecepatan Docker ini dapat di-skala-kan dengan kecepatan secara real time.

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.

Pengenalan Komponen di Dalam Docker


Untuk lebih memahami bagian di dalam Docker, anda perlu memahami tentang tiga
istilah dalam pengenalan docker ini:

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.

Cara Kerja Docker Image


Kita sudah melihat bahwa Docker Image adalah template read-only yang diluncurkan
Docker container. Setiap gambar terdiri dari serangkaian lapisan. Docker membuat
penggunaan sistem berkas union untuk menggabungkan lapisan ini ke dalam satu
Image. File sistem union memungkinkan file dan direktori sistem file terpisah, yang
dikenal sebagai cabang, harus transparan overlay, membentuk sistem file tunggal yang
koheren.

File Sistem Union

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.

Cara Kerja Docker Registry


Docker registry adalah penyimpanan untuk Docker Image anda. Setelah anda
membangun Docker Image, anda dapat mengirimnya ke registry publik seperti Docker
Hub atau registri anda sendiri yang berjalan di belakang firewall anda.

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.

$ docker run -i -t ubuntu /bin/bash

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:

Apakah Docker Image digunakan untuk membangun container dari (misalnya)


ubuntu
Perintah yang anda ingin jalankan dalam container ketika diluncurkan, misalnya,
/ bin / bash
Tujuan menajalankan perintah tersebut adalah agar Docker Engine melakukan hal-hal
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.

Anda mungkin juga menyukai