Peta dunia

 

EN: Read in English

Dunia D3: Loker & Talian Telefon

Ke mana data saya?

Anda akan belajar: kenapa fail yang disimpan dalam container boleh hilang.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

orders.txt tulis nasi lemak. Aina buang container kedai dan mulakan yang baru. Kini ls kata No such file or directory. Transkrip Docker: $ docker exec kedai cat /orders.txt nasi lemak $ docker rm -f kedai kedai $ docker run -d --name kedai nginx:1.30-alpine a5e8d729798055e459d37f5d9d4c49d4ed56e791fffee5ef328300b2c132960f $ docker exec kedai ls /orders.txt ls: /orders.txt: No such file or directory

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • kedaiberjalan
    dari nginx:1.30-alpine

Pek beku (image)

  • alpine:3.221 layer · 12.9MB
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna

1 container (1 berjalan), 2 image, 0 loker.

Aina simpan pesanan hari ini dalam container. Lepas itu dia tukar dengan container baru. Pesanan itu lesap. Ke mana perginya?

Tengok

Ketik setiap titik pada garis masa.

Setiap container ada lapisan atas yang nipis. Inilah writable layer (lapisan tulis) (writable layer): Lapisan nipis milik container sendiri. Perubahan anda masuk ke situ. docker rm membuangnya. (lapisan tulis). Tekan setiap langkah untuk ikut orders.txt.

Cuba

Restart kedai. Kemudian semak orders.txt masih ada.

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • kedaiberjalan
    dari nginx:1.30-alpine

Pek beku (image)

  • alpine:3.221 layer · 12.9MB
  • nginx:1.30-alpine8 layer · 93.5MB · sedang diguna

1 container (1 berjalan), 2 image, 0 loker.

Teka

Teka dulu, kemudian jalankan. Adakah fail itu kekal?

Di mana setiap fail disimpan? Teka apa yang kekal, kemudian jalankan.

$ docker run -d --name kedai nginx:1.30-alpine

Soalan 1 daripada 2

Bekas bekal: container kedai

  • Dalam bekas bekal (writable layer)/app/orders.txt

Di luar bekas bekal

    Lepas ini, anda jalankan:

    Mulakan semula container.

    $ docker restart kedai

    Pilih Kekal atau Hilang untuk setiap fail dahulu.

    Semak

    Selepas docker rm, apa yang hilang dan apa yang kekal?

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

        Semak

        Aplikasi kedai anda simpan gambar yang dimuat naik dalam /app/uploads. Macam mana nak jaga gambar itu?

        Pilih satu jawapan.

        Anda berjaya!

        Kini anda boleh terangkan kenapa fail dalam container boleh hilang.

        Nak tahu lebih (pilihan)

        docker diff senaraikan apa yang berubah dalam writable layer. A maksudnya ditambah, C diubah, D dipadam.

        bash
        docker run -d --name box alpine:3.22 sleep 600
        docker exec box sh -c "echo nasi lemak > /orders.txt"
        docker diff box
        A /orders.txt
        docker diff pada container alpine baru tunjuk satu fail ditambah: A /orders.txt.

        Latihan sebenar (pilihan), dengan Docker anda sendiri atau di Codespaces:

        Misi sebenar

        1. docker run -d --name box alpine:3.22 sleep 600
        2. docker exec box sh -c "echo hi > /note.txt"
        3. docker rm -f box
        4. docker run --rm alpine:3.22 cat /note.txt

        0 daripada 4 langkah siap · Tanda anda disimpan.