Peta dunia

 

EN: Read in English

Dunia D4: Set Hidangan

Kenapa set hidangan?

Anda akan belajar: kenapa satu fail boleh hidupkan seluruh aplikasi anda.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

Empat arahan panjang buka kedai secara manual: satu talian telefon, kemudian pangkalan data, API dan laman web, ikut urutan itu. Transkrip Docker: $ docker network create kedai-net 01abe8096e6e2033e588c9e5fd44ec63959cff2f6ba501805ef61abf346b19a2 $ docker run -d --name db --network kedai-net -e POSTGRES_PASSWORD=example -v db-data:/var/lib/postgresql postgres:18-alpine 033291ed5c9e2b8b35d5ad227af13ccaa1195d555c6591b1f5e0564b6754c136 $ docker run -d --name api --network kedai-net -e DB_HOST=db kedai-api f616762aee3c4d180e7c85d19c30d3abf8db83fc996edee682504bc35bd1530c $ docker run -d --name web --network kedai-net -p 8080:80 kedai-web afb2e219cebc4aafef29bfe7aca4f7400096dbae25ec1c91607228c3ae70682e

Laptop anda~/kedai-kancil

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • kedai-api:latest6 layer · 244MB
  • kedai-web:latest9 layer · 92.6MB
  • nginx:1.30-alpine8 layer · 93.5MB
  • node:24-alpine4 layer · 244MB
  • postgres:18-alpine9 layer · 433MB
  • redis:8-alpine7 layer · 162MB

0 container (0 berjalan), 6 image, 0 loker.

Buka Kedai Kancil secara manual perlukan empat arahan panjang. Setiap pagi. Ikut urutan ini. Tertinggal satu pilihan, kedai tak dibuka.

Tengok

Baca fail yang ia tulis. Kemudian tekan Pesan set makanan.

Menu (tekan atau seret)

Set makanan anda

  • web
    build: ./web
    Tunggu
  • api
    build: ./api
    Tunggu
  • db
    postgres:18-alpine
    Tunggu

compose.yaml 17 baris

services:
web:
build: ./web
ports:
- "8080:80"
api:
build: ./api
environment:
DB_HOST: db
db:
image: postgres:18-alpine
environment:
POSTGRES_PASSWORD: example
volumes:
- db-data:/var/lib/postgresql
volumes:
db-data: {}

Set hidangan dipesan sekali gus. Compose: Hidupkan banyak container serentak dengan satu arahan. (set hidangan) buat begitu untuk container. Satu fail senaraikan setiap hidangan. Satu pesanan hidupkan semuanya.

Tengok

Satu arahan buat talian telefon dan loker, kemudian hidupkan tiga bekas: web, api dan db. Transkrip Docker: $ docker compose up -d [+] up 5/5 ✔ Network kedai-kancil_default Created 0.1s ✔ Volume kedai-kancil_db-data Created 0.0s ✔ Container kedai-kancil-web-1 Started 0.3s ✔ Container kedai-kancil-api-1 Started 0.3s ✔ Container kedai-kancil-db-1 Started 0.3s $ docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS kedai-kancil-api-1 kedai-kancil-api "docker-entrypoint.s…" api 3 seconds ago Up 3 seconds 3000/tcp kedai-kancil-db-1 postgres:18-alpine "docker-entrypoint.s…" db 3 seconds ago Up 3 seconds 5432/tcp kedai-kancil-web-1 kedai-kancil-web "/docker-entrypoint.…" web 3 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp

Laptop anda~/kedai-kancil

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • kedai-kancil-api:latest6 layer · 244MB
  • kedai-kancil-web:latest9 layer · 92.6MB
  • nginx:1.30-alpine8 layer · 93.5MB
  • node:24-alpine4 layer · 244MB
  • postgres:18-alpine9 layer · 433MB
  • redis:8-alpine7 layer · 162MB

0 container (0 berjalan), 6 image, 0 loker.

Inilah yang sebenar. docker compose up -d baca compose.yaml dan hidupkan setiap hidangan di latar belakang.

Cuba

Giliran anda. Hidupkan seluruh kedai dengan satu arahan. Kemudian ketuk tingkap 8080 dengan curl localhost:8080.

Laptop anda~/kedai-kancil

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

  • kedai-kancil-api:latest6 layer · 244MB
  • kedai-kancil-web:latest9 layer · 92.6MB
  • nginx:1.30-alpine8 layer · 93.5MB
  • node:24-alpine4 layer · 244MB
  • postgres:18-alpine9 layer · 433MB
  • redis:8-alpine7 layer · 162MB

0 container (0 berjalan), 6 image, 0 loker.

Semak

Alat mana sesuai untuk setiap kerja?

Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.

        Anda berjaya!

        Kini anda boleh hidupkan seluruh stack dengan satu arahan.

        Nak tahu lebih (pilihan)

        docker compose ialah plugin untuk arahan docker. Ia cari compose.yaml dalam folder anda. Nama folder jadi nama projek. Sebab itu bekasnya bernama kedai-kancil-web-1.

        Latihan sebenar (pilihan), di mesin anda sendiri:

        Misi sebenar

        1. mkdir hello-set && cd hello-set
        2. printf 'services:\n web:\n image: nginx:1.30-alpine\n ports:\n - "8080:80"\n' > compose.yaml
        3. docker compose up -d
        4. docker compose down

        0 daripada 5 langkah siap · Tanda anda disimpan.