Tuesday, June 12, 2018

Docker CLI Cheat Sheet

Docker CLI
Hampir tiap hari, saya selalu berurusan dengan docker. Selain karena tuntutan kerja, menurut saya docker asik untuk di oprek dan banyak hal yang bisa di eksplor disitu. Misalnya saya biasa pake ubuntu buat aktivitas harian, dengan docker saya bisa eksplor command line yang ada pada sistem operasi lain. Seperti  OpenSUSE, Fedora, CentOS atau bahkan OS dari varian Unix sepert FreeBSD. Dari sini berarti docker bisa digunakan untuk testing kompatibilitas sebuah script (contoh : bash atau shell script).

Selain itu, kita juga bisa memanfaatkan docker dengan cara yang absurd, misalnya kita gunakan docker sebagai media belajar cluster (akan saya bahas di postingan selanjutnya). Container bisa kita jadikan node seperti sebuah VM, hanya saja node ini tidak memiliki fitur sebuah node asli, seperti ktia tidak bisa memanipulasi kernel environment, memanipulasi iptables, grub atau bootloader dan fitur sejenisnya yang ada kaitannya dengan kernel. 

Nah saking banyaknya itu, saya kadang lupa perintah-perintah yang digunakan pada docker. Itulah alasan kenapa postingan ini saya buat. ;) 

Managemen Image
melihat daftar image yang tersedia pada server lokal
docker images
menampilkan daftar images dengan pola nama tertentu
docker images [nama_image]*
menghapus image
docker rmi [id_atau_nama_image] [id_atau_nama_image1] ... [id_atau_nama_imagen]

menghapus image paksa (jika image sedang digunakan pada container aktif/non-aktif
docker rmi -f [id_atau_nama_image] [id_atau_nama_image1] ... [id_atau_nama_imagen]

membuat sebuah image (akan saya pada postingan selanjutnya)
docker build -t nama_image/nama_image:tag1:tag2 [path_build]
mengubah tag image yang ada
docker tag [id_image] team.ujuizi.com:5005/ramani/ingrid:old-latest

Deploy Container
membuat sebuah container dan masuk kedalam sistem container
docker run -it [nama_image] bash
membuat sebuah container dan masuk kedalam sistem container dan hapus container otomatis setelah selesai
docker run -it --rm [nama_image] bash
membuat sebuah container dan menjalankannya pada background process
docker run -d [nama_image]
membuat sebuah container dan menjalankannya pada background process untuk base image OS (ubuntu, centos, fedora dkk)
docker run -d -it [nama_image] bash
membuat container dengan nama tertentu
docker run -d --name [nama_container][nama_image]
membuat container dengan memberi hostname pada container
docker run -d --hostname [nama-container] [nama_image]
membuat container dengan default work directory tertentu
docker run -d --workdir /path/workdir [nama_image]
membuat container dengan mengekspos port dan protokol tertentu
docker run -d -p [port_host]:[port_container]/tcp -p [port1_host]:[port1_container]/udp [nama_image]
membuat container dengan menghubungkan direktori/file/volume kedalam container 
docker run -d -v /path/pada/direktori/host:/path/dalam/container -v /path/ke/file/host:/path/file/ke/container [nama_image]
contoh lengkap membuat kontainer dengan nama, hostname, default path, expose port dan volume
docker run -d \
--name my_webserver \
--hostname my-webserver \
-v /var/www/html/myproject:/usr/local/apache2/myproject \
-v /etc/apache2/apache2.conf:/usr/local/apache2/conf/httpd.conf \
--workdir /usr/local/apache2/myproject \
-p 9080:80 \
httpd

Managemen Container
melihat daftar container aktif
docker ps
melihat seluruh container aktif maupun non-aktif
docker ps -a
menghentikan container
docker stop [nama_atau_id_container] [nama_atau_id_container1] ... [nama_atau_id_containern]
menghentikan seluruh container
docker stop $(docker ps -a -q)
menjalankan container yang berhenti
docker start [nama_atau_id_container] [nama_atau_id_container1] ... [nama_atau_id_containern]
menghapus container
docker rm [nama_atau_id_container] [nama_atau_id_container1] ... [nama_atau_id_containern]
menghapus container secara paksa tanpa menghentikan container terlebih dahulu
docker rm -f [nama_atau_id_container] [nama_atau_id_container1] ... [nama_atau_id_containern]
menghapus seluruh container  (setelah semua dihentikan)
docker rm $(docker ps -a -q)
menghapus seluruh container secara paksa tanpa dihentikan
docker rm -f $(docker ps -a -q)
mengubah nama container
docker renama [hama_container] [nama_container_baru]
melihat informasi container
docker inspect [id_atau_nama_container]

Managemen Volume

menampilkan daftar volume
docker volume ls
membuat volume baru
docker volume create [nama_volume]
menghapus volume

docker volume rm [nama_volume]
menghapus volume yang tidak digunakan sama sekali oleh container

docker volume prune 

Logging
melihat log container secara keseluruhan
docker logs [nama_container]
melihat log container secara keseluruhan dan follow log dari container

docker logs -f [nama_container]
melihat 10 baris terakhir log container
docker logs --tail 10 [nama_container]
melihat 10 baris terkahir log container lalu follow log dari container
docker logs --tail 10 -f [nama_container]

Cleanup Docker System
menghapus apapun yang sedang tidak digunakan / tidak aktif (container, volume, network, image, build cache)
docker prune
Docker Compose
cek yml file docker-compose
docker-compose -f /path/docker-compose.yml config

Kalo ada yang kurang jelas atau ada kesalahan dalam artikel ini, silahkan komentar di kolom bawah.
Semoga bermanfaat. :)

Referensi :

No comments:

Post a Comment