यदि आपको एक आईएसओ फाइल मिली है जो आप एक डॉकटर कंटेनर के अंदर रूट फाइल सिस्टम के रूप में उपयोग करना चाहते हैं, तो डॉकटर सीधे समर्थन नहीं करता है। आपको आईएसओ इमेज को पहले डॉकटर इमेज में बदलने की जरूरत है।
एक संभावित समाधान मेजबान पर लूप डिवाइस का उपयोग करके आईएसओ छवि को माउंट करना है और फिर कॉल करना है docker run
एक न्यूनतम कंटेनर का उपयोग करते हुए -v से शीर्ष स्तर के निर्देशिकाओं को आइसो से कोवाटिनर में बांधने के लिए।
अर्थात। कुछ इस तरह:
mkdir /tmp/iso-mount
mount -o loop,ro path-to-image-file.iso /tmp/iso-mount
top_dir_mounts=()
for i in bin etc lib usr var
do
top_dir_mounts+=(-v "/tmp/iso-mount/$i:/$i")
done
docker run --rm --read-only "${top_dir_mounts[@]}" --tmpfs /tmp --tmpfs /run busybox
यह कंटेनर में आपके ISO फ़ाइल की फ़ाइलों के साथ व्यस्त बॉक्स छवि की सामग्री को ओवरराइड करता है। यह बहुत आसान हो सकता है अगर docker run
कंटेनर में रूट को ओवरराइड करने के लिए -v का उपयोग करने की अनुमति दी गई है, इसलिए उपरोक्त सभी -v को बस के साथ बदला जा सकता है -v "/tmp/iso-mount:/"
, लेकिन डॉकटर ने इसे खारिज कर दिया।