Appearance
Bekerja dengan container
Sekarang praktik. Kamu akan menjalankan Nginx di container, memeriksa statusnya, melihat log, menjalankan perintah di dalamnya, lalu menghentikan atau menghapusnya.
Semua perintah yang kamu ketik melalui Docker CLI akan dikirim ke Docker Engine. Engine yang membuat dan menjalankan container. Pastikan Docker Desktop atau Docker Engine sedang berjalan.
Menjalankan container
Format command:
sh
docker run --name <nama-container> -p <port-local>:<port-di-container> <image:tag>Contoh:
sh
docker run --name web -p 8080:80 nginx:1.27Apa yang terjadi:
- Docker Engine memeriksa apakah image
nginx:1.27sudah ada di mesin. Kalau belum, Engine melakukan pull dari registry. - Container bernama
webdibuat dari image itu. - Port 80 di dalam container di-map ke port 8080 di laptop kamu.
Buka http://localhost:8080 di browser. Harus muncul halaman default Nginx.
Tanpa -p, container tetap jalan, tapi kamu tidak bisa akses dari browser. Mapping port adalah host:container.
Terminal kamu "tertahan" karena Nginx jalan di foreground. Stop dengan Ctrl+C.
Pada praktiknya di pekerjaan, container biasanya dijalankan di background (detached) agar terminal tetap bisa digunakan:
Format command:
sh
docker run -d --name <nama-container> -p <port-local>:<port-di-container> <image:tag>Contoh:
sh
docker run -d --name web -p 8080:80 nginx:1.27-d = detached. Terminal kembali; container tetap jalan.
TIP
Nama --name web harus unik. Kalau error "name already in use", container lama masih ada. Lihat bagian stop, restart, dan hapus di bawah.
List container
Untuk melihat container yang sedang running, gunakan docker ps:
sh
docker psContoh output:
text
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 nginx:1.27 "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp webdocker ps hanya menampilkan container yang sedang running. Untuk melihat semua container, termasuk yang sudah stop:
sh
docker ps -aContoh output:
text
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 nginx:1.27 "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp web
f6e5d4c3b2a1 nginx:1.27 "/docker-entrypoint.…" 5 minutes ago Exited (0) 3 minutes ago old-webKolom yang sering kamu baca adalah NAMES, STATUS, dan PORTS. Output bisa sedikit berbeda tergantung versi Docker dan ukuran terminal.
Container Logs
Untuk melihat output proses yang berjalan di dalam container, gunakan docker logs:
Log ini setara dengan melihat output standar dari app:
sh
docker logs webContoh output:
text
/docker-entrypoint.sh: Configuration complete; ready for start up
2026/08/23 08:00:12 [notice] 1#1: start worker processesUntuk terus mengikuti log baru secara live, gunakan option -f:
sh
docker logs -f webMenjalankan Command di dalam Container
Command exec meminta Docker Engine menjalankan command di dalam container yang sedang running. Ini berguna untuk memeriksa kondisi container saat debugging:
sh
docker exec -it web sh-it supaya session-nya interaktif. Ketik exit untuk kembali ke terminal laptop.
Kamu tidak harus "SSH ke container" setiap saat. logs dan exec berguna saat app tidak merespons, env salah, atau file tidak ditemukan.
Stop, Restart & Hapus Container
Format command untuk menghentikan container:
sh
docker stop <container-name-or-id>Contoh:
sh
docker stop webCommand stop meminta Docker Engine menghentikan proses dengan rapi. Container yang sudah stop masih tersimpan dan bisa dijalankan kembali.
Format command untuk menjalankan kembali container yang sudah stop:
sh
docker start <container-name-or-id>Contoh:
sh
docker start webDocker Engine menjalankan kembali container yang sama. Konfigurasi seperti image, nama, port mapping, dan volume tetap digunakan.
Format command untuk menghapus container:
sh
docker rm <container-name-or-id>Contoh:
sh
docker rm webrm menghapus container, bukan image. Container harus sudah stop sebelum dihapus.
Untuk menghentikan dan menghapus container sekaligus:
sh
docker rm -f web-f memaksa Docker Engine menghentikan container jika masih running, lalu menghapusnya.
Container yang dihapus hilang beserta filesystem-nya. Data yang hanya hidup di dalam container ikut hilang. Cara menyimpan data dibahas di lesson 6.