Instalasi kita baru saja lolos pemeriksaan menyeluruh pada Chapter Verifikasi Instalasi: daemon menyala, docker run hello-world berhasil, dan plugin buildx serta Compose terpasang dengan baik. Mulai saat ini interaksi kita dengan Docker akan berlangsung hampir sepenuhnya lewat terminal, sehingga CLI adalah alat yang akan kita pegang berjam-jam setiap hari. Kabar baiknya, ratusan perintah Docker yang tampak menakutkan di awal sebenarnya mengikuti satu tata bahasa yang konsisten — bukan daftar hafalan yang acak. Chapter ini membedah tata bahasa tersebut supaya setiap perintah baru yang kita jumpai bisa kita baca, bukan kita tebak.
Pola Management Command #
Docker CLI modern disusun mengikuti pola management command: kita menyebut objek yang ingin dikelola, lalu perintah yang ingin dilakukan terhadap objek tersebut. Bentuk lengkapnya adalah docker [flag global] <objek> <perintah> [flag] [argumen]. Pola ini meniru cara kita berpikir sehari-hari: “Docker, tolong kelola volume, lakukan create, dengan nama latihan-volume”. Mari kita buktikan pola ini dengan satu perintah nyata:
$ docker volume create latihan-volumeOutput yang Dihasilkan:
latihan-volumeMari kita telaah potongan perintah di atas satu per satu:
docker— program klien yang kita panggil; klien ini hanya meneruskan permintaan ke daemon, persis seperti yang kita bahas pada Chapter Arsitektur Docker.volume— objek yang dikelola; Docker punya kelompok perintah tersendiri untuk setiap jenis objek.create— perintah atau “kata kerja” yang dilakukan terhadap objek volume.latihan-volume— argumen perintah, dalam hal ini nama volume yang ingin dibuat; output satu baris di bawahnya adalah nama yang dikembalikan Docker sebagai tanda keberhasilan.
Setiap objek populer di Docker membawa kelompok perintahnya sendiri. Tabel berikut merangkum objek yang akan paling sering kita sentuh sepanjang Course ini:
| Objek | Yang dikelola | Contoh perintah |
|---|---|---|
container | Siklus hidup container: menjalankan, menghentikan, menghapus | docker container run, docker container stop |
image | Image di penyimpanan lokal: menarik, menampilkan, menghapus | docker image pull, docker image ls |
volume | Penyimpanan data yang dikelola Docker | docker volume create, docker volume ls |
network | Jaringan virtual antar container | docker network create, docker network ls |
compose | Aplikasi multi-container dari compose.yaml | docker compose up, docker compose ps |
buildx | Build image dengan engine BuildKit | docker buildx build, docker buildx ls |
system | Informasi dan pembersihan menyeluruh | docker system df, docker system prune |
Dua objek terakhir punya kedudukan yang sedikit berbeda dari yang lain. Perintah compose dan buildx bukan bawaan CLI inti, melainkan plugin yang dipasang terpisah dari repositori resmi Docker sebagai paket plugin Compose dan buildx — keduanya tetap dipanggil seperti perintah biasa lewat spasi, misalnya docker compose up, tanpa strip di tengah nama.
Alias Bentuk Lama dan Bentuk Modern #
Pola objek-plus-perintah baru diperkenalkan pada Docker 1.13 di awal 2017. Sebelum pola itu ada, seluruh perintah menempel langsung di akar: docker ps, docker run, docker images. Bentuk-bentuk lama tersebut tetap dipertahankan sampai sekarang sebagai alias agar jutaan skrip dan kebiasaan lama tidak rusak, sehingga kita akan menemukan keduanya di internet. Keduanya benar-benar setara — tidak ada perbedaan kecepatan maupun kemampuan:
| Bentuk lama | Bentuk modern | Fungsi |
|---|---|---|
docker ps | docker container ls | Menampilkan daftar container |
docker run | docker container run | Membuat dan menjalankan container baru |
docker rm | docker container rm | Menghapus container |
docker images | docker image ls | Menampilkan daftar image lokal |
docker rmi | docker image rm | Menghapus image |
docker start / docker stop | docker container start / docker container stop | Menyalakan / menghentikan container |
Satu alias modern lain yang menarik: docker build sekarang menjadi pintasan ke docker buildx build karena BuildKit menjadi engine build default sejak Docker 23.0. Perpindahan ini tidak mengubah cara kita mengetik perintah build, hanya memindahkan mesin yang bekerja di belakangnya.
Flag Global CLI #
Selain flag per perintah, program docker menerima beberapa flag global yang menempel pada program itu sendiri dan harus ditulis sebelum objek dan perintah. Flag yang sama tapi ditulis setelah perintah akan dianggap flag milik perintah tersebut — posisi menentukan arti. Lima flag berikut adalah yang paling sering berguna:
| Flag | Bentuk pendek | Fungsi |
|---|---|---|
--config | — | Lokasi berkas konfigurasi klien (default ~/.docker) |
--context | -c | Nama context daemon yang dituju |
--debug | -D | Mengaktifkan keluaran debug pada klien |
--host | -H | Alamat endpoint daemon untuk satu pemanggilan |
--log-level | -l | Tingkat log klien: debug, info, warn, error, fatal |
Mari kita coba --host untuk melihat efek flag global secara langsung:
$ docker --host unix:///var/run/docker.sock psOutput yang Dihasilkan:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESMari kita telaah perintah dan output di atas:
--host unix:///var/run/docker.sock— kita menyuruh klien berbicara ke daemon lewat Unix socket lokal; alamat ini memang endpoint bawaan, jadi hasilnya sama dengandocker pspolos.- Posisi flag sebelum
ps— karena ditulis sebelum perintah, flag ini dibaca sebagai flag global; coba pindahkan ke belakangpsdan maknanya berubah menjadi flag milikps. - Output hanya baris judul — di mesin kita belum ada container yang sedang berjalan, sehingga
docker pshanya mencetak kepala tabel; arti tiap kolom tabel ini kita bedah tuntas pada Chapter Melihat Container.
Tiga Cara Membaca Bantuan #
Menghafal seluruh perintah Docker adalah pekerjaan yang sia-sia; yang perlu kita hafal adalah cara bertanya. Ada tiga bentuk bantuan yang saling melengkapi. Pertama, docker --help menampilkan peta seluruh perintah tingkat atas. Kedua dan ketiga, docker help <perintah> serta docker <perintah> --help keduanya menampilkan bantuan untuk satu perintah tertentu — dua bentuk ini setara, tinggal pilih yang paling nyaman diketik. Untuk objek atau management command, bantuan akan mencantumkan seluruh subperintah yang tersedia:
$ docker container --helpOutput yang Dihasilkan:
Usage: docker container COMMAND
Manage containers
Commands:
attach Attach local standard input, output, and error streams to a running container
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
exec Execute a command in a running container
export Export a container's filesystem as a tar archive
inspect Display detailed information on one or more containers
kill Kill one or more running containers
logs Fetch the logs of a container
...
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
top Display the running processes of a container
wait Block until one or more containers stop, then print their exit codes
Run 'docker container COMMAND --help' for more information on a command.Daftar perintah di tengah output dipotong agar ringkas. Mari kita telaah bagian-bagian pentingnya:
- Baris
Usage:— pola pemakaian objek ini:docker container COMMAND, persis tata bahasa objek-plus-perintah yang kita bahas di awal chapter. Manage containers— deskripsi satu baris yang menjelaskan wilayah kerja objek container.- Daftar
Commands:— seluruh “kata kerja” yang berlaku untuk container, daricreatesampaiwait; nama-nama ini akan muncul terus pada chapter-chapter berikutnya di Section ini. - Baris terakhir — petunjuk pola rekursif: tambahkan
--helpdi belakang subperintah, misalnyadocker container run --help, untuk membaca flag lengkap milikrun.
Dengan tata bahasa, tabel objek, alias, flag global, dan tiga pintu bantuan kini berada di tangan kita, membaca dokumentasi Docker akan terasa seperti membaca kalimat, bukan kata per kata. Namun struktur saja belum cukup untuk mengenali lingkungan kerja: kita butuh dua perintah yang berperan sebagai panel instrumen. Chapter berikutnya, docker help dan docker version, membedah output docker --help, docker version, dan docker info sampai ke baris terakhirnya.
Referensi #
- Use the Docker CLI — referensi resmi seluruh perintah docker CLI beserta flag globalnya.
- docker container — daftar subperintah pada objek container.
- docker system — perintah informasi dan pembersihan menyeluruh di tingkat sistem.