Docker Tanpa Root

Docker Tanpa Root



Docker adalah salah satu alat paling kuat dan berpengaruh untuk pengembangan dan penerapan aplikasi modern. Sebagai pengembang, kami menggunakannya di mesin lokal untuk menyiapkan dan mengonfigurasi lingkungan yang sesuai dengan kebutuhan aplikasi kami dengan cepat dalam hitungan detik.

Namun, saat bekerja di Docker, kita mungkin menemukan kejadian di mana kita perlu membuat dan menggunakan sumber daya Docker tetapi tidak memiliki akses root.

Atau mungkin Anda ingin mengizinkan banyak pengguna di sistem tertentu untuk mengakses dan menggunakan Docker tanpa memberikan izin root kepada semua pengguna.







Dalam tutorial ini, kita akan mempelajari tentang Docker tanpa root, apa artinya, cara kerjanya, dan bagaimana kita dapat menggunakannya untuk mengizinkan pengguna tanpa akses root untuk menggunakan Docker dan layanan terkaitnya.



Apa itu Docker Tanpa Root?

Secara default, setelah Anda menginstal Docker, daemon Docker dan alat-alatnya memerlukan hak akses root pada sistem host. Hal ini dapat menimbulkan risiko keamanan secara signifikan jika Docker disusupi, yang dapat memberikan akses root kepada penyerang.



Rootless Docker adalah fitur yang memungkinkan kita menggunakan dan menjalankan daemon Docker dan container terkait tanpa izin root.





Bagaimana itu bekerja

Meskipun mungkin sulit untuk mendalami cara kerja teknis lingkungan buruh pelabuhan tanpa root, berikut ini adalah ikhtisar tingkat tinggi yang menjelaskan apa yang dilakukan buruh pelabuhan tanpa root dan cara kerjanya.

Ruang Nama Pengguna – Salah satu fitur penting yang digunakan buruh pelabuhan tanpa root adalah ruang nama pengguna. Fitur mendasar dari kernel Linux ini memungkinkan proses memiliki ID pengguna dan grup yang berbeda di dalam namespace dibandingkan dengan di luar. Ini berarti bahwa suatu proses dapat berjalan sebagai pengguna root di dalam namespacenya, namun di luar itu, proses tersebut berjalan sebagai pengguna biasa.



Jaringan – Fitur Docker tanpa root berikutnya adalah jaringan. Secara default, daemon buruh pelabuhan normal bergantung pada tumpukan jaringan seperti iptables dan bridge yang memerlukan izin root.

Docker memanfaatkan fitur seperti slirp4netns, yang menyediakan tumpukan TCP/IP mode pengguna di buruh pelabuhan tanpa root. Hal ini memungkinkan Docker untuk mengakses jaringan tanpa izin root pada sistem host.

Penyimpanan – Bagian penting berikutnya dari buruh pelabuhan tanpa root adalah driver penyimpanan. Secara default, Docker menggunakan driver penyimpanan overlay2, yang, seperti yang Anda duga, memerlukan izin root. Sebaliknya, instance buruh pelabuhan yang tidak memiliki root menggunakan driver Fuse-Overlayfs. Driver ini didasarkan pada FUSE overlay fs, yang memungkinkan kita memasangnya tanpa izin root.

Di atas adalah beberapa komponen penting dari instance buruh pelabuhan tanpa root. Ingatlah bahwa ini tidak mengeksplorasi cara kerja buruh pelabuhan tanpa root secara lengkap. Pertimbangkan dokumentasi untuk mempelajari lebih lanjut.

Docker Tanpa Root – Persyaratan

Mari kita beralih dari teori dan mempelajari cara membuat dan mengonfigurasi lingkungan Docker tanpa root.

Untuk mengikuti postingan ini, pastikan Anda memiliki yang berikut:

  1. Sistem berbasis Linux dengan izin root.
  2. Akses jaringan.

Konfigurasi Sistem dengan UIDMap

Sebelum menginstal dan mengkonfigurasi Docker, kita harus menginstal dan mengkonfigurasi sistem dengan utilitas uidmap.

UIDMap memungkinkan kita untuk mengelola pemetaan UID dan GUI dari proses dalam sistem Linux dalam konten namespace pengguna. Ingat ketika kami menyebutkan bahwa Docker tanpa root memanfaatkan namespace pengguna? Alat ini memungkinkan kita menentukan pemetaan UID dan GID serta namespace yang terkait.

Mulailah dengan menyegarkan paket sistem sebagai berikut:

$ sudo pembaruan apt-get

Selanjutnya, instal utilitas uidmap seperti yang ditunjukkan:

$ sudo instalasi apt-get peta uid -Dan

Menginstal Docker Tanpa Root

Langkah selanjutnya adalah memproses dan menginstal Docker tanpa root. Kita dapat melakukannya dengan mengikuti langkah-langkah sederhana yang diuraikan di bawah ini:

Mulailah dengan mengunduh skrip penginstal buruh pelabuhan tanpa akar dari tautan di bawah ini:

https://get.docker.com/rootless

Anda dapat menggunakan cURL atau WGET.

$ keriting -sSL https: // dapatkan.docker.com / tak menentu | SH

Perhatikan bahwa Anda tidak dapat menjalankan perintah di atas sebagai pengguna root.

Setelah instalasi selesai, edit file .bashrc Anda menggunakan editor teks favorit Anda:

$ nano .bashrc

Selanjutnya, tambahkan entri berikut ke file konfigurasi bashrc:

ekspor XDG_RUNTIME_DIR = / rumah / ubuntu / .buruh pelabuhan / berlari

ekspor JALUR = / rumah / ubuntu / tempat sampah: $JALAN

ekspor DOCKER_HOST =unix: /// rumah / ubuntu / .buruh pelabuhan / berlari / buruh pelabuhan.kaus kaki

Pastikan untuk mengubah pengguna dari “ubuntu” menjadi pengguna yang ingin Anda instal Docker. Output skrip akan memberi Anda konten untuk ditambahkan ke file .bashrc.

Simpan perubahan dan tutup editor.

Pada langkah berikutnya, kita perlu memulai daemon Docker yang tidak dapat di-root. Kita dapat melakukan ini menggunakan systemctl, seperti yang ditunjukkan pada perintah di bawah ini:

sistemctl --ubuntu mulai buruh pelabuhan

Setelah dimulai, Anda dapat menggunakan perintah Docker untuk memulai dan mengonfigurasi container Docker.

Kesimpulan

Dalam tutorial ini, kita mempelajari fungsionalitas Docker tanpa root, cara kerjanya, dan cara mengkonfigurasinya di sistem Linux. Jangan ragu untuk memeriksa dokumentasi buruh pelabuhan tanpa root untuk mempelajari lebih lanjut.