Skip to content

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.27

Apa yang terjadi:

  1. Docker Engine memeriksa apakah image nginx:1.27 sudah ada di mesin. Kalau belum, Engine melakukan pull dari registry.
  2. Container bernama web dibuat dari image itu.
  3. 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 ps

Contoh 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

docker ps hanya menampilkan container yang sedang running. Untuk melihat semua container, termasuk yang sudah stop:

sh
docker ps -a

Contoh 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-web

Kolom 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 web

Contoh output:

text
/docker-entrypoint.sh: Configuration complete; ready for start up
2026/08/23 08:00:12 [notice] 1#1: start worker processes

Untuk terus mengikuti log baru secara live, gunakan option -f:

sh
docker logs -f web

Menjalankan 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 web

Command 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 web

Docker 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 web

rm 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.