Dalam docker, chroot ialah operasi dalam sistem Unix dan Linux Ia menukar direktori akar jelas proses perisian yang sedang berjalan dan proses anaknya Ia boleh menukar direktori akar proses, supaya Program ini tidak boleh akses direktori lain di luar direktori.
Persekitaran pengendalian tutorial ini: sistem linux7.3, versi docker-1.13.1, komputer Dell G3.
chroot
Teknologi kontena telah muncul sejak kemunculan pertama chroot pada tahun 1979.
Wikipedia mentakrifkan chroot seperti berikut:
ialah operasi dalam sistem Unix dan Linux untuk menukar direktori akar yang jelas bagi proses perisian yang sedang berjalan dan proses anaknya. Program yang berjalan dalam persekitaran ini dan menetapkan direktori akar melalui chroot tidak boleh mengakses fail di luar direktori akar yang ditentukan, tidak boleh membacanya dan tidak boleh menukar kandungannya.
Dalam istilah orang awam, chroot boleh menukar direktori akar proses supaya program tidak boleh mengakses direktori lain di luar direktori Ini sangat serupa dengan apa yang kita lakukan dalam bekas. Di bawah ini kami menggunakan contoh untuk menunjukkan chroot.
penerangan contoh chroot:
1), mkdir rootfs
#Buat direktori bernama: rootfs dalam direktori semasa
2), cd rootfs
#Masukkan nama direktori: direktori rootfs
3), eksport docker $(docker create docker101tutorial) -o docker101tutorial.tar
#Namakan bekas: Sistem fail bagi docker101tutorial dieksport ke docker101tutorial.tar sebagai fail arkib docker101tutorial.tar dan disimpan
# Ia juga boleh difahami secara ringkas sebagai mencipta beberapa direktori dan meletakkan beberapa fail binari di bawah rootfs
4), tar -xf docker101tutorial.tar
#Ekstrak kandungan fail docker101tutorial.tar
5), ls
#Lihat kandungan fail dalam direktori rootfs semasa
6), chroot /Users/xiaoqin.wu/rootfs /bin/sh
#Mulakan proses sh dan gunakan /Users/xiaoqin.wu/rootfs sebagai direktori akar proses sh
Bandingkan hasil arahan 5 dalam gambar di atas: ls untuk melihat kandungan fail dalam /Users/xiaoqin.wu/rootfs direktori dan hasil penggunaannya dalam proses sh Perintah 7: Keputusan ls menyemak proses semasa adalah konsisten Pada ketika ini, ia bermakna proses semasa dan hos diasingkan menggunakan chroot. tetapi ia tidak boleh dipanggil bekas lagi.
Sebabnya adalah seperti berikut:
Gunakan arahan 8: netstat -nr untuk melihat maklumat penghalaan
Ia didapati daripada keputusan bahawa maklumat rangkaian tidak diasingkan sebenarnya, proses dan maklumat lain tidak diasingkan pada masa ini Untuk melaksanakan bekas yang lengkap, tiga teknologi Linux lain diperlukan untuk melaksanakannya, iaitu:
Ruang nama
.Cgroup
Sistem Fail Bersama
Pembelajaran yang disyorkan: "tutorial video docker"
Atas ialah kandungan terperinci Apa yang chroot lakukan dalam docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!