Memahami Arsitektur Docker

Sebelum masuk ke pengimplementasian Docker, akan lebih mudah jika kita mengetahui bagian-bagian dari Docker itu sendiri. memahami bagian dari Docker juga mempermudah kamu dalam pengenalan istilah-istilah yang digunakan dalam Docker. Docker memiliki arsitektur yang terbagi menjadi 3 bagian, dimana ketiganya saling berkoordinasi.

arsitektur docker

Gambar  1 Arsiterktur Docker

Secara garis besar docker di bagi menjadi 3 bagian yaitu Client, DOCKER_HOST, Registry. Penjelasan lebih dalam akan dijelaskan di bawah ini.

Docker Client

Docker Client adalah tempat dimana user bisa berinteraksi dengan docker host. Kamu bisa menggunakan Docker Dekstop atau juga SSH ke Server. Jika kamu menggunakan Windows maka bisa menginstall WSL2 atau menggunakan Putty. Docker client inilah yang digunakan untuk menjalankan perintah berupa build, pull dan run container.

 Arsitektur Docker : Docker Client

Gambar  2  Arsitektur Docker : Docker Client

DOCKER_HOST

Docker host adalah tempat yang digunakan untuk menjalankan docker. Di dalam  Docker host ini berisi beberapa komponen yaitu docker images dan docker container.

  • Docker daemon : bagian yang mengelola objek docker berupa image, container, volume (penyimpanan), network dan menghubungkan daemon satu dengan yang lainya.
  • Docker images : sebuah aplikasi yang siap digunakan dan akan dijalnakn di dalam container. Contoh dari images ini adalah MySql, PHP, Apache, Node.js, Redis, OpenJDK dan lainya.
  • Docker container: tempat untuk menjalankan aplikasi, bisa dianggap sebagai wadah. Dimana wadah ini nantinya akan berisi image yang dibutuhkan. Misalnya jika dalam pembuatan aplikasi membutuhkan image Apache, MySQL, PHP dan directori atau file project yang akan dibuat lainya.

Docker Registry

Adalah repository docker yang ada pada https://hub.docker.com/ ini. Docker registry ini digunakan untuk menyimpan image yang akan berguna ketika kita sedang membutuhkan image Nodejs, MongoDB, MySQL, atau Apache. Dimana image-image ini bisa di pull dari registry Docker. Kamu juga membuat image sendiri dan push ke docker registry, yang tentunya kamu harus membuat akun dulu di https://hub.docker.com/ agar bisa mem-push image.

Menjalankan Container Docker yang Berisi Image Apache

Setelah memahami docker dari  pengenalan, penginstalan sampai arsitekturnya, selanjutnya kita akan langsung masuk pada penerapan docker itu sendiri.  Di contoh penerapan docker ini kita akan mencoba menjalankan container docker yang berisi Image Apache. Berikut contohnya

1. Sambungkan SSH dengan Server

Hal pertama yang perlu dilakukan adalah menyambungkan SSH ke server Anda dengan perintah berikut

 $ ssh username@ip_address

2. Jalankan Docker

Pastikan docker sudah terinstal dan  statusnya running dengan perintah berikut

$ sudo systemctl status docker

Jika docker sudah berstatus Running, maka ia akan memiliki tampilan seperti gambar di bawah ini

Status docker

3. Lihat List Container

Silahkan lihat list container yang sedang berjalan, list container dsini masih kosong karena belum menjalankan container apapun.

Untuk melihat list container ini, kamu bisa menggunakan perintah berikut

$ docker ps

list container pada docker

4. Pull image Apache

Selanjutnya adalah kita akan melakukan pull image Apache. Kamu bisa melakukannya dengan perintah berikut

$ docker pull httpd

Dengan melakukan pull image ini maka docker akan menjalankan pull image dari registry/respository docker. Jika pull image Apache sudah selesai maka tampilan akan terlihat seperti berikut:

pull image apache pada docker

Jika kedepannya kamu ingin membuat container lagi dengan image yang sudah ada, maka kamu tidak perlu melakukan pull image lagi, karena sudah ada di dalam list image dockers di server kamu. Namun hal ini berlaku untuk image yang memiliki versi yang sama, jika memiliki versi yang berbeda maka maka perlu dilakukan pull image lagi.

5. Lihat List Image Docker

Cek list image docker yang ada di server dengan perintah berikut ini

 $ docker images

Cek list image docker yang ada di server

6. Run Container

Run container dengan image yang telah kita pull dengan perintah berikut ini

$ docker run -d --name jagoweb-apache -p 81:80 -d httpd

Maka tampilan akan menjadi seperti berikut

run container

Keterangan:

 

1. 

Docker run

digunakan untuk menjalankan perintah membuat container

2. 

-d (detach)

Menjalankan background

3. 

-name

Nama yang ingin kita berikan ke container yang sedang dibuat

4. 

-p (port)

Port yang ingin kita set pada container tersebut. Misal port Apache menggunakan port 80 di internal docker, untuk diakses dari luar kita expose ke port 81 sehingga seperti ini –p 81:80.

5. 

Httpd

Image yang digunakan pada container adalah image httpd

7. Cek Browser Untuk Melihat Keberhasilan Menjalankan Docker  

Selanjutnya silahkan coba akses melalui browser anda http://ip_server:port_expose

Maka akan muncul seperti ini

 Cek browser untuk melihat keberhasilan menjalankan docker

Jika tampilan sudah seperti gambar di atas, selamat! Kamu sudah berhasil menjalankan program Docker.

Apa yang Membuat Banyak Orang Menyukai Docker?

Ada banyak alasan kenapa developer aplikasi/software menyukai docker untuk container aplikasi. Selain dikenal memiliki banyak manfaat ternyata docker memiliki banyak kelebihan juga. Diantaranya adalah

1. Multi-Cloud

Ini adalah salah satu kekuatan dari Docker yang cukup popular, yaitu docker  menjadi platform multi-cloud. Jadi docker tidak hanya bisa digunakan untuk penyimpanan awan tertentu saja melainkan bisa dijalankan di beberapa plafform cloud.

Hal ini karena docker sudah didukung penggunaanya di beberapa penyedia cloud besar seperti Google sampai Amazon. Jadi Docker dapat dijalankan di penyedia cloud seperti

  • Amazon web services
  • Google compute platform
  • Server Rackspace
  • Virtual Box

Docker bisa dijalankan di penyedia cloud besar ini dengan catatan host OS mendukung Docker.

2. Konfigurasi yang Mudah

Untuk menggunakan docker, kamu bisa melakukan konfigurasi sederhana yang mudah dipelajari. Konfigurasi docker dilakukan hanya dengan menggunakan beberapa kode saja untuk kemudian docker akan membuat lingkungan sendiri yang berbeda dengan lingkungan server utama.

3. Keamanan Sistem

Docker bekerja dengan memisahakn aplikasi yang berjalan pada wadah yang terisolasi/terpisah. Hal ini membuat docker dinilai memiliki tingkat keamanan yang bagus. Sebab aplikasi yang terpisah ini sudah jelas tidak akan memengaruhi container dan memberikan kontrol penuh untuk manajemen dan arus traffic nya.

Selain ini docker juga menggunakan sistem OS Host mount point yang diatur read only, hal ini untuk mengamankan aplikasi agar tidak ada yang bisa mengubah konfigurasi apapun kecuali user yang memiliki akses penuh.

Kesimpulan

Ada banyak hal yang bisa kita dapatkan dari docker. Mulai dari fungsinya yang cukup penting untuk developer sampai dengan contoh pengimplemantasian dan kelebihan docker. Tidak heran perusahaan cloud terbesar seperti google dan amazon memberikan dukungan secara pribadi kepada Docker.

Jadi itulah tutorial dari Jagoweb mengenai tutorial docker indonesia dan informasi tambahan di dalamnya. Kamu juga bisa memelajari cara install docker pada VPS Ubuntu pada tutorial yang sudah kami ulas kemarin. Sebelum menginstal docker akan lebih baik memilih layanan VPS yang tepat, misalnya VPS di Jagoweb. Terjangkau dan bergaransi.

Sekian ulasan hari ini semoga bermanfaat!