Peta dunia

 

EN: Read in English

Dunia D1: Container Pertama

Pilihan run berguna: -d, --name, --rm

Anda akan belajar: jalankan container di belakang, beri nama, dan biar ia kemas sendiri.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Docker Engine 29 pada 31 Okt 2026

Masalahnya

docker run nginx:1.30-alpine. nginx bermula di depan anda. Mesejnya penuhi terminal dan prompt tak kembali. Bekas baru dapat nama rawak. Transkrip Docker: $ docker run nginx:1.30-alpine /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: ipv6 not available /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2026/10/31 01:00:03 [notice] 1#1: using the "epoll" event method 2026/10/31 01:00:03 [notice] 1#1: nginx/1.30.6 2026/10/31 01:00:03 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) 2026/10/31 01:00:03 [notice] 1#1: OS: Linux 6.18.44-fc-v185 2026/10/31 01:00:03 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2026/10/31 01:00:03 [notice] 1#1: start worker processes 2026/10/31 01:00:03 [notice] 1#1: start worker process 20 2026/10/31 01:00:03 [notice] 1#1: start worker process 21 2026/10/31 01:00:03 [notice] 1#1: start worker process 22 2026/10/31 01:00:03 [notice] 1#1: start worker process 23

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

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

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

Anda jalankan nginx. Kini terminal anda tersekat, penuh dengan mesej. Bekas itu pula dapat nama rawak. Jom baiki kedua-duanya.

Cuba

Bina arahan yang lebih baik. detached (-d): Container berjalan di belakang, macam periuk nasi: tekan, kemudian tinggalkan. bermaksud detached. Bekas berjalan di belakang, macam periuk nasi. --name pilih namanya.

Ketik kepingan ikut turutan yang betul.

…

Cuba

Sekarang taip. Terminal anda tetap bebas, dan bekas itu bernama web.

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

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

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

Tengok

docker run --rm alpine:3.22 echo hi paparkan hi. Kemudian docker ps -a tunjuk senarai kosong: bekas itu buang dirinya sendiri. Transkrip Docker: $ docker run --rm alpine:3.22 echo hi hi $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Laptop anda~

  • Tiada tingkap terbuka

Bekas (container)

  • Belum ada container

Pek beku (image)

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

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

–rm buang bekas bila kerjanya selesai. docker ps -a tunjuk tiada apa yang tinggal. Sesuai untuk kerja sekali jalan.

Cuba

Pilihan mana sesuai untuk setiap kerja?

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

        Teka

        web sudah wujud. Anda jalankan docker run -d --name web nginx:1.30-alpine sekali lagi. Apa jadi?

        Pilih satu jawapan.

        Semak

        Bekas bernama web sudah berjalan. docker run --name web dijawab dengan ralat Conflict: nama itu sudah diguna. Transkrip Docker: $ docker run -d --name web nginx:1.30-alpine docker: Error response from daemon: Conflict. The container name "/web" is already in use by container "6ec55477bc83e265efff898782c9659842ae83490bf5db2bc364ef5396b65203". You have to remove (or rename) that container to be able to reuse that name. Run 'docker run --help' for more information

        Laptop anda~

        • Port laptop 8080 → web port 80

        Bekas (container)

        • webberjalan
          dari nginx:1.30-alpine 8080→80

        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.

        Ralat sebenar kata nama "/web" is already in use. Maksudnya: satu nama, satu bekas. Buang bekas lama, atau pilih nama baru.

        Anda berjaya!

        Kini anda boleh jalan, namakan dan kemas bekas dengan tiga pilihan.

        Nak tahu lebih (pilihan)

        -d dan --rm boleh digabung: bekas di belakang yang kemas sendiri bila berhenti. docker rename web shop tukar nama. -it beri anda papan kekunci dalam bekas; itu dalam pelajaran 6.

        Latihan sebenar (pilihan):

        Misi sebenar

        1. docker run -d --name web nginx:1.30-alpine
        2. docker run --rm alpine:3.22 echo hi
        3. docker ps -a
        4. docker rm -f web

        0 daripada 4 langkah siap · Tanda anda disimpan.