Appearance
Docker Essentials Cheatsheet
Cheatsheet ini berisi command Docker yang paling sering dipakai untuk local development dan pekerjaan sehari-hari. Gunakan course Docker Essentials jika membutuhkan penjelasan konsep dan praktik yang lebih lengkap.
Image Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 1 | docker pull <image>:<tag> | docker pull nginx:1.27 | Mengambil image ke mesin lokal. Command ini tidak menjalankan container. |
| 2 | docker images | docker images | Menampilkan image yang tersedia di mesin lokal. |
| 3 | docker build -t <nama-image>:<tag> <build-context> | docker build -t hello-web:1.0 . | Membuat image dari Dockerfile. Tanda . berarti folder saat ini digunakan sebagai build context. |
| 4 | docker tag <image-lokal>:<tag-lokal> <nama-image-baru>:<tag-baru> | docker tag hello-web:1.0 bagus/hello-web:1.0 | Membuat nama atau tag tambahan untuk image yang sama. Command ini tidak membuat salinan image baru. |
| 5 | docker rmi <image>:<tag> | docker rmi hello-web:1.0 | Menghapus image dari mesin lokal. Command ini gagal jika masih ada container yang memakai image tersebut. |
Container Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 6 | docker run -d --name <nama-container> -p <port-local>:<port-container> <image>:<tag> | docker run -d --name web -p 8080:80 nginx:1.27 | Membuat dan menjalankan container di background. Port 8080 pada laptop diarahkan ke port 80 di dalam container. |
| 7 | docker ps | docker ps | Menampilkan container yang sedang running. |
| 8 | docker ps -a | docker ps -a | Menampilkan semua container, termasuk container yang sudah berhenti. |
| 9 | docker logs <nama-container> | docker logs web | Menampilkan output proses di dalam container. |
| 10 | docker logs -f <nama-container> | docker logs -f web | Mengikuti log baru secara live. Tekan Ctrl+C untuk berhenti mengikuti log. |
| 11 | docker exec -it <nama-container> <command> | docker exec -it web sh | Menjalankan command di dalam container yang sedang running. Ketik exit untuk keluar dari shell container. |
| 12 | docker stop <nama-container> | docker stop web | Menghentikan container dan tetap menyimpannya agar dapat dijalankan kembali. |
| 13 | docker start <nama-container> | docker start web | Menjalankan kembali container yang sudah berhenti dengan konfigurasi sebelumnya. |
| 14 | docker rm <nama-container> | docker rm web | Menghapus container yang sudah berhenti. |
| 15 | docker rm -f <nama-container> | docker rm -f web | Menghentikan dan menghapus container yang masih running. Command ini tidak menghapus image dan named volume secara otomatis. |
Registry Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 16 | docker login -u <dockerhub-username> | docker login -u bagus | Login ke Docker Hub agar Docker Engine memiliki izin untuk push image. Gunakan personal access token sebagai password jika account memakai two-factor authentication. |
| 17 | docker push <registry>/<repository>:<tag> | docker push bagus/hello-web:1.0 | Mengirim image dari mesin lokal ke registry. Image harus sudah diberi tag sesuai nama repository dan kamu harus sudah login. |
Volume Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 18 | docker volume ls | docker volume ls | Menampilkan named volume yang dikelola Docker. |
| 19 | docker run -d --name <nama-container> -v <nama-volume>:<path-di-container> <image>:<tag> | docker run -d --name db -v pgdata:/var/lib/postgresql/data postgres:16 | Memasang named volume ke path data di dalam container. Named volume tetap ada setelah container dihapus. |
| 20 | docker run -d --name <nama-container> -v <folder-lokal>:<path-di-container> <image>:<tag> | docker run -d --name web -v "$(pwd)/html:/usr/share/nginx/html:ro" nginx:1.27 | Memasang folder tertentu dari laptop ke dalam container. Suffix :ro membuat container hanya dapat membaca folder tersebut. |
Network Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 21 | docker network create <nama-network> | docker network create app-network | Membuat user-defined network agar beberapa container dapat berkomunikasi menggunakan nama container. |
| 22 | docker run -d --name <nama-container> --network <nama-network> <image>:<tag> | docker run -d --name db --network app-network postgres:16 | Menempatkan container pada network tertentu. Container lain pada network yang sama dapat menggunakan db sebagai hostname. |
| 23 | docker network ls | docker network ls | Menampilkan network yang tersedia di mesin lokal. |
Environment Variable Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 24 | docker run -d --name <nama-container> -e <NAMA_VARIABLE>=<nilai> <image>:<tag> | docker run -d --name db -e POSTGRES_PASSWORD=secret -e POSTGRES_DB=app postgres:16 | Memberikan konfigurasi ke container tanpa mengubah image. Hindari menulis secret production langsung di command atau shell history. |
Docker Compose Command
| No. | Format Command | Contoh Command | Keterangan |
|---|---|---|---|
| 25 | docker compose up -d | docker compose up -d | Menjalankan semua service dari compose.yaml di background. |
| 26 | docker compose logs -f | docker compose logs -f | Mengikuti log baru dari semua service secara live. |
| 27 | docker compose logs -f <nama-service> | docker compose logs -f db | Mengikuti log baru dari service tertentu secara live. |
| 28 | docker compose down | docker compose down | Menghentikan dan menghapus container serta network Compose. Named volume tidak ikut terhapus. |
| 29 | docker compose down -v | docker compose down -v | Menghentikan dan menghapus container, network, serta named volume Compose. Gunakan hanya jika ingin mereset data local. |
| 30 | docker compose up -d --build | docker compose up -d --build | Membuat ulang image untuk service yang menggunakan build, lalu menjalankan service di background. |