EN: Read in English
Dunia D6: Di Sebalik Tabir
Mod rootless dan Podman
Anda akan belajar: kenapa root dalam container boleh jadi root pada laptop anda, dan cara Docker rootless dan Podman kurangkan risiko itu.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Docker Engine 29 pada 31 Okt 2026
Masalahnya
Secara lalai, root dalam container ialah root pada laptop juga. Satu pepijat biar aplikasi terlepas dari bekasnya. Apa yang ia boleh buat?
Pilih satu jawapan.
Tengok
Hidupkan suis User. Tengok uid pada laptop.
Apa yang ia nampak (namespace)
Pengguna
Di dalam:
uid=0(root)Di laptop:
uid=0(root di laptop juga!)Docker guna suis ini hanya dalam mod rootless, atau dengan userns-remap.
Root di dalam kini jadi uid 100000 di luar. Itulah user namespace: Root di dalam container, pengguna biasa pada laptop. Mati dalam Docker kecuali anda minta. (namespace pengguna). Docker biarkannya mati kecuali anda minta.
Tengok
rootless mode: Daemon Docker dan container berjalan sebagai anda, bukan root. Kalau terlepas, ia dapat hak anda sahaja. (mod tanpa root) pergi lebih jauh. Daemon Docker sendiri berjalan sebagai anda, dalam user namespace. Kalau terlepas, ia dapat hak anda sahaja.
Teka
Dalam mod rootless, anda taip docker run -d -p 80:80 nginx:1.30-alpine. Apa jadi?
Pilih satu jawapan.
Cuba
Podman jalankan image yang sama tanpa daemon langsung. Jalankannya sebagai diri anda, dan ia rootless. Susun setiap satu.
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Semak
Tabiat selamat, atau perlu diperbaiki?
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
Jalankan aplikasi sebagai USER bukan root dalam image.
Anda berjaya!
Kini anda boleh terangkan cara Docker rootless dan Podman jauhkan kuasa root.
Nak tahu lebih (pilihan)
Rootless perlukan newuidmap dan newgidmap (pakej uidmap) serta 65,536 id ganti dalam /etc/subuid dan /etc/subgid. Had seperti --memory perlukan cgroup v2 dengan systemd. Port rendah: lihat halaman tips. Untuk Podman, alias docker=podman cukup untuk kebanyakan arahan.
Misi sebenar
grep ^$(whoami): /etc/subuiddockerd-rootless-setuptool.sh installdocker infodocker run --rm hello-world
0 daripada 5 langkah siap · Tanda anda disimpan.
English
By default, root inside a container is root on the laptop too. A bug lets an app break out of its box. What can it do?
Root inside now maps to uid 100000 outside. That is a user namespace. Docker leaves it off unless you ask.
Rootless mode goes further. The Docker daemon itself runs as you, inside a user namespace. A break-out gets only your rights.
In rootless mode, you type docker run -d -p 80:80 nginx:1.30-alpine. What happens?
Podman runs the same images with no daemon at all. Run it as yourself, and it is rootless. Sort each one.
Safe habit, or needs work?
You can now explain how rootless Docker and Podman keep root out of reach.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Rootless mode · Rootless mode: tips · Isolate containers with a user namespace · Podman documentation
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?