- Get link
- X
- Other Apps
Pengenalan Docker
Singkat-singkat aja ya. Lama klo dijelasin jentre satu2. Pertama dari kasus. Kasusnya adalah, ketika coder dgn berbagai latar belakang, skill dan alat tempur (laptop/PC dan OS nya).. Ketika setup environment untuk ngode, selalu ada kendala tidak kompatibel dsb, termasuk sampai implementasi / deployment di server. Sering terdengar “Jalan kok di komputer saya” ..
Docker adalah virtual machine management, yg mana sebuah VM bisa dishare across coders sehingga semua coders selalu menggunakan image yang seragam. Nah perubahan2 pada image pun didistribusikan dan dikelola sebagaimana dikelolanya source code oleh GIT. Sehingga dapat dipastikan keseragaman sistem yg dipake tiap coders.
Docker muncul menyaingi Vagrant. Vagrant itu setiap imagenya full seperti VirtualBox, yang dikelola snapshotnya. Otomatis kalau VM yg dibuat banyak, bakal berat. Bedanya Docker, dia menggunakan teknologi Linux container LxC dan AuFS. LxC memastikan VM jalan tanpa virtualisasi / hypervisor. Sedangkan AuFS tidak memotret snapshot, tapi merekam delta/perubahan antar snapshot (sebagaimana git menyimpan delta perubahan source code). Intinya Docker lebih cepat (startup/bootnya saja hitungan milidetik) dan ringkas. Kelemahannya, VM yg dikelola cuma bisa linux.
To the point aja, kita coba Docker:
- Install
Windows: https://docs.docker.com/installation/windows/
Mac: https://docs.docker.com/installation/mac/ - Cobain. Buka shortcutnya yg ada di desktop, atau utk mac buka saja terminal
docker run hello-world
- Pull salah satu image yg readily available. Misalnya centos. Docker akan unduh imagenya, sekitar 150MB. Gede ya? Ya tunggu saja :).
docker pull centos
Kalau pingin sekalian kerja, ya bisa pull image yg kita punya. Di situ sudah banyak setting yang dibuat.docker pull zaunaf/xond
- Image centos cukup kumplit. Kita coba command biasa dulu.
docker run centos /bin/echo 'Halo Abah Kasep'
atau jika image xond yg dipake:docker run zaunaf/xond /bin/echo 'Halo Abah Kasep'
Dapat dilihat bahwa virtual os bekerja sangat cepat, tanpa lama2 booting langsung menjalankan program “echo” kemudian keluar kembali. - Sekarang kita coba masuk shellnya.
docker run -t -i centos /bin/bash
atau jika image xond yg dipake:docker run -t -i zaunaf/xond /bin/bash
Coba main2 di situ, eksplorasi si image dengan df, fstab, ls, dsb2. - Sekarang coba buat perubahan di image yang sedang anda mainkan. Misalnya buatlah file di /root.
bash$ touch /root/file_baru.txt
- Kemudian keluarlah dari shell
bash$ exit
- Coba masuk kembali
docker run -t -i centos /bin/bash
- Cek lah ke /root. Apakah file tadi masih ada ?
bash$ ls -la /root
Ternyata filenya HILANG !!! - Jangan kuatir. File tsb bukanlah hilang. Yang anda lakukan terakhir tadi adalah membuat “container” baru. Snapshot kalau di bahasa VMWare/Virtualbox. Bayangkan anda punya sebuah VMDK atau VDI, anda gandakan, kemudian anda play, lakukan perubahan, kemudian pause. State “paused” tadi adalah container. Jika anda buat lagi VM baru, dgn VMDK/VDI duplikatnya, maka anda kembali dari kondisi awal. Nah VMDK / VDI tadi, itulah image. Sebelum lanjut anda harus mengerti konsep container ini. Semua container yg pernah anda bikin, dapat dilihat dengan perintah berikut:
docker ps -a
Perhatikan hasilnya. Contohnya seperti ini :CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c288a04382c0 zaunaf/xond:latest /bin/bash 4 hours ago Exited (127) 4 seconds ago berserk_engelbart 303b56360f80 zaunaf/xond:latest /bin/bash 4 hours ago naughty_carson
- Ada dua container yang anda buat.. Yang anda tambahkan file tadi mungkin yang paling bawah. Setiap container otomatis diberi ID, nah container yg saya maksud tadi adalah yg id nya 303b56360f80. Perhatikan kolom paling kanan, “naughty_carson” .. Itu adalah nama yang otomatis diberikan docker pada tiap container. Nah hebatnya, anda bisa kembali ke kondisi yang anda buat tadi. Untuk kembali ke container di mana anda telah buat perubahan, jalankan command berikut:
docker start naughty_carson
Setelah itu masuklah kembali meneruskan shell anda tadidocker attach naughty_carson
Tekan enter setelah itu, maka anda akan kembali ke bash. Periksa file yg anda buat pertama, apakah ada?bash$ ls -la /root
Ternyata ada !! Nah seharusnya dengan eksperimen sederhana ini anda dapat mulai memahami konsep docker yang memang sepertinya agak membingungkan.
Masih banyak materi mengenai docker, misalnya bagaimana menjalankan service, mapping portnya, manajemen update docker yang seperti git, dsb. Insya Allah di post-post berikutnya.
sumber copas : https://subcoder77.wordpress.com/2014/08/14/pengenalan-docker/
Comments
Post a Comment