Docker tanpa akar

Docker Tanpa Akar



Docker ialah salah satu alat yang paling berkuasa dan berpengaruh untuk pembangunan dan penggunaan aplikasi moden. Sebagai pembangun, kami menggunakannya pada mesin tempatan kami untuk menyediakan dan mengkonfigurasi persekitaran dengan pantas yang sesuai dengan keperluan aplikasi kami dalam beberapa saat.

Walau bagaimanapun, apabila bekerja di Docker, kita mungkin menghadapi keadaan di mana kita perlu mencipta dan menggunakan sumber Docker tetapi tidak mempunyai akses root.

Atau mungkin anda ingin membenarkan berbilang pengguna pada sistem tertentu untuk mengakses dan menggunakan Docker tanpa memberikan semua kebenaran root pengguna.







Dalam tutorial ini, kami akan mempelajari tentang Docker tanpa akar, maksudnya, cara ia berfungsi dan cara kami boleh menggunakannya untuk membenarkan pengguna tanpa akses root menggunakan Docker dan perkhidmatan yang berkaitan dengannya.



Apakah itu Docker Tanpa Root?

Secara lalai, sebaik sahaja anda memasang Docker, daemon Docker dan alatannya memerlukan keistimewaan root pada sistem hos. Ini boleh mengakibatkan risiko keselamatan dengan ketara jika Docker terjejas, yang boleh memberikan akses root kepada penyerang.



Docker Tanpa Root ialah ciri yang membolehkan kami menggunakan dan menjalankan daemon Docker dan bekas yang berkaitan tanpa kebenaran root.





Bagaimana ia berfungsi

Walaupun mungkin mencabar untuk menyelami kerja teknikal persekitaran buruh pelabuhan tanpa akar, berikut ialah gambaran keseluruhan peringkat tinggi yang menerangkan perkara yang dilakukan oleh buruh pelabuhan tanpa akar dan cara ia berfungsi di bawah hud.

Ruang Nama Pengguna – Salah satu ciri penting yang digunakan oleh docker tanpa akar ialah ruang nama pengguna. Ciri asas kernel Linux ini membolehkan proses mempunyai ID pengguna dan kumpulan yang berbeza di dalam ruang nama berbanding di luar. Ini bermakna bahawa proses boleh berjalan sebagai pengguna akar di dalam ruang namanya, tetapi di luar itu, ia berjalan sebagai pengguna biasa.



Rangkaian – Ciri seterusnya Docker tanpa akar ialah rangkaian. Secara lalai, daemon docker biasa bergantung pada susunan rangkaian seperti iptables dan bridges yang memerlukan kebenaran root.

Docker mengambil kesempatan daripada ciri seperti slirp4netns, yang menyediakan timbunan TCP/IP mod pengguna dalam docker tanpa akar. Ini membolehkan Docker mengakses rangkaian tanpa kebenaran root pada sistem hos.

Penyimpanan – Bahagian penting seterusnya bagi pekerja pelabuhan tanpa akar ialah pemacu storan. Secara lalai, Docker menggunakan pemacu storan overlay2, yang, seperti yang anda boleh teka, memerlukan kebenaran root. Sebaliknya, contoh docker tanpa akar menggunakan pemacu tindanan fius. Pemacu ini adalah berdasarkan tindanan FUSE fs, yang membolehkan kami melekapkannya tanpa kebenaran root.

Di atas ialah beberapa komponen penting bagi contoh docker tanpa akar. Ingat bahawa ini tidak meneroka kerja lengkap docker tanpa akar. Pertimbangkan dokumentasi untuk mengetahui lebih lanjut.

Docker Tanpa Root – Keperluan

Mari kita beralih daripada teori dan belajar cara mencipta dan mengkonfigurasi persekitaran Docker tanpa akar.

Untuk mengikuti siaran ini, pastikan anda mempunyai yang berikut:

  1. Sistem berasaskan Linux dengan kebenaran root.
  2. Akses rangkaian.

Mengkonfigurasi Sistem dengan UIDMap

Sebelum memasang dan mengkonfigurasi Docker, kami mesti memasang dan mengkonfigurasi sistem dengan utiliti uidmap.

UIDMap membolehkan kami mengurus pemetaan UID dan GUI bagi proses dalam sistem Linux dalam kandungan ruang nama pengguna. Ingat apabila kami menyebut bahawa Docker tanpa akar mengambil kesempatan daripada ruang nama pengguna? Alat ini akan membolehkan kami menentukan pemetaan UID dan GID serta ruang nama yang sepadan.

Mulakan dengan menyegarkan pakej sistem seperti berikut:

$ sudo kemas kini apt-get

Seterusnya, pasang utiliti uidmap seperti yang ditunjukkan:

$ sudo apt-get install uidmap -dan

Memasang Docker Tanpa Root

Langkah seterusnya ialah memproses dan memasang Docker tanpa akar. Kita boleh melakukannya dengan mengikuti langkah mudah yang digariskan di bawah:

Mulakan dengan memuat turun skrip pemasang docker tanpa akar dari pautan yang ditunjukkan di bawah:

https://get.docker.com/rootless

Anda boleh menggunakan cURL atau WGET.

$ keriting -sSL https: // get.docker.com / tanpa akar | sh

Ambil perhatian bahawa anda tidak boleh menjalankan arahan di atas sebagai pengguna root.

Setelah pemasangan selesai, edit fail .bashrc anda menggunakan editor teks kegemaran anda:

$ nano .bashrc

Seterusnya, tambahkan entri berikut pada fail konfigurasi bashrc:

eksport XDG_RUNTIME_DIR = / rumah / ubuntu / .docker / lari

eksport JALAN = / rumah / ubuntu / tong sampah: $PATH

eksport DOCKER_HOST =unix: /// rumah / ubuntu / .docker / lari / docker.stock

Pastikan untuk menukar pengguna daripada 'ubuntu' kepada pengguna yang anda ingin pasangkan Docker. Output skrip akan memberi anda kandungan untuk ditambahkan pada fail .bashrc.

Simpan perubahan dan tutup editor.

Dalam langkah seterusnya, kita perlu memulakan daemon Docker tanpa akar. Kita boleh melakukan ini menggunakan systemctl, seperti yang ditunjukkan dalam arahan di bawah:

systemctl --ubuntu mula berlabuh

Setelah dimulakan, anda boleh menggunakan arahan Docker untuk memulakan dan mengkonfigurasi bekas Docker.

Kesimpulan

Dalam tutorial ini, kami mempelajari fungsi Docker tanpa akar, cara ia berfungsi dan cara kami boleh mengkonfigurasinya pada sistem Linux. Sila semak dokumentasi docker tanpa akar untuk mengetahui lebih lanjut.