Peta dunia

 

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

bash
dockerd-rootless-setuptool.sh install
[INFO] Creating CLI context "rootless"
Successfully created context "rootless"
[INFO] Using CLI context "rootless"
Current context is now "rootless"
Dari dokumentasi Docker: alat persediaan rootless, dijalankan sebagai pengguna biasa, cipta konteks CLI bernama rootless dan tukar kepadanya.

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.

        1 / 4

        Jalankan aplikasi sebagai USER bukan root dalam image.

        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

        1. grep ^$(whoami): /etc/subuid
        2. dockerd-rootless-setuptool.sh install
        3. docker info
        4. docker run --rm hello-world

        0 daripada 5 langkah siap · Tanda anda disimpan.