EN: Read in English
Dunia D6: Di Sebalik Tabir
Namespace: apa yang ia nampak
Anda akan belajar: cara namespace Linux beri satu proses senarai proses, rangkaian dan hostname sendiri.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Proses biasa ini, node server.js, nampak semua program dalam laptop. Dalam container, ps tunjuk satu sahaja. Hidupkan dua suis ini dan tengok.
Hidupkan PID, kemudian Mount. Tengok senarai proses.
Apa yang ia nampak (namespace)
Proses yang ia nampak
1 /sbin/init412 sshd655 containerd701 dockerd1880 firefox4242 node server.js← proses ini
Fail yang ia nampak
/home/aina/kedai/server.js/home/aina/.ssh/id_ed25519/home/aina/Photos//var/lib/docker/
Tengok
Laptop anda~
- Port laptop 8080 → web port 80
Bekas (container)
- webberjalan
Pek beku (image)
- nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
1 container (1 berjalan), 1 image, 0 loker.
Dua nama berbeza! Setiap suis ialah satu namespace (Linux): Penutup mata untuk proses: ia nampak proses, rangkaian, fail atau hostname sendiri sahaja. Bukan namespace Kubernetes.. Namespace (ruang nama) ialah penutup mata. Ia sorok satu benda, contohnya hostname laptop.
Cuba
Cari penutup mata yang beri proses itu kad rangkaian sendiri.
Suis mana yang beri network sendiri?
Apa yang ia nampak (namespace)
Network
lo 127.0.0.1wlan0 192.168.1.20docker0 172.17.0.1
Hostname
aina-laptopMemori kongsi
- memori kongsi dari firefox
- memori kongsi dari pulseaudio
Petunjuk
Cari suis di sebelah panel Network.Teka
Dua container nginx sama-sama dengar port 80 di dalam. Adakah ia berlanggar?
Pilih satu jawapan.
Cuba
Buktikan. Mulakan nginx kedua bernama web2, tanpa -p.
Laptop anda~
- Port laptop 8080 → web port 80
Bekas (container)
- webberjalan
Pek beku (image)
- nginx:1.30-alpine8 layer · 93.5MB · sedang diguna
1 container (1 berjalan), 1 image, 0 loker.
Petunjuk
docker run -d --name web2 nginx:1.30-alpine mulakannya di latar belakang.Semak
Namespace mana yang sorok setiap benda?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Anda berjaya!
Kini anda boleh terangkan cara namespace ubah apa yang container nampak.
Nak tahu lebih (pilihan)
Linux ada 8 jenis: cgroup, IPC, network, mount, PID, time, user dan UTS. Docker hidupkan PID, mount, network, UTS dan IPC (dan cgroup pada cgroup v2). Yang user kekal mati secara lalai (pelajaran 6). Namespace Kubernetes ialah idea lain: satu zon medan selera.
Latihan sebenar (pilihan, Linux): buat namespace sendiri.
Misi sebenar
sudo unshare --uts --pid --fork --mount-proc shhostname kancilpsexit
0 daripada 4 langkah siap · Tanda anda disimpan.
English
This plain process, node server.js, sees every program on the laptop. Inside a container, ps showed just one. Flip the two switches and watch.
Two different names! Each switch is a namespace. A namespace is a pair of blinkers. It hides one thing, like the laptop’s hostname.
Find the blinker that gives the process its own network card.
Two nginx containers both listen on port 80 inside. Will they clash?
Prove it. Start a second nginx called web2, without -p.
docker run -d --name web2 nginx:1.30-alpine starts it in the background.Which namespace hides each thing?
You can now explain how namespaces change what a container sees.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: namespaces(7) · Docker security: kernel namespaces · unshare(1)
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?