वर्चुअलाइजेशन अब तक सबसे सरल है।
हालाँकि आपके यहां 2 अलग-अलग उपयोग के मामले हैं, जिनके अलग-अलग समाधान होंगे
1. नए डिस्ट्रो का प्रयास करें
वितरण मूल रूप से पैक किए गए अनुप्रयोगों और उपयोगकर्ता वातावरण (जैसे SystemD
बनाम) द्वारा निर्धारित किए जाते हैंinit
बूट के लिए )
यदि आप गुणात्मक रूप से एक अलग वितरण के UIX का "मूल्यांकन" करना चाहते हैं, तो मैं पूर्ण विकसित वर्चुअलाइजेशन की सिफारिश करूंगा जहां आप ओएस को इसकी संपूर्णता में स्थापित करते हैं और इसकी उपयोगिता का मूल्यांकन करते हैं। यह अन्य उत्तरों में पर्याप्त रूप से कवर किया गया है।
यदि आपको परीक्षण के लिए केवल उपयोक्ता वातावरण की आवश्यकता है तो पढ़ें।
2. विभिन्न वातावरणों में परीक्षण और "थ्रो-दूर के उदाहरण"
यह आसान, सस्ता और तेजी से कंटेनरीकरण का उपयोग करने के लिए है, हल्के वजन वर्चुअलाइजेशन का एक रूप है जो सैंडबॉक्स वाले वातावरण बनाने के लिए कर्नेल का उपयोग करता है।
एक कंटेनर होस्ट के साथ कर्नेल संसाधन साझा करता है, लेकिन अन्यथा इसकी स्वयं की रूट फाइल सिस्टम, उपयोगकर्तास्पेस, नेटवर्क स्टैक आदि है, यह अवधारणा के रूप में माना जा सकता है chroot
स्टेरॉयड पर । हालांकि, क्योंकि कर्नेल को वर्चुअलाइजेशन साझा किया जाता है, "पतला" है, जिसका अर्थ है कि अधिकांश व्यावहारिक उद्देश्यों के लिए यह होस्ट ओएस के समान गति से चलता है।
आमतौर पर इस्तेमाल किया जाने वाला कंटेनर सिस्टम कहा जाता है docker
। डॉकर ने व्यावहारिक रूप से आपके द्वारा पसंद किए जाने वाले प्रत्येक लिनक्स वितरण के लिए छवियों को मानकीकृत किया है, और यह विंडोज़ पर चलता है (हालांकि, विंडोज़ की छवियां केवल खिड़कियों पर काम करती हैं, लिनक्स की छवियां दोनों पर काम करती हैं)। इसमें अंतरिक्ष और प्रदर्शन को बचाने के लिए अतिरिक्त उपयोगी सुविधाएँ हैं।
जैसे linux के लिए देशी ओपन सोर्स विकल्प भी हैं LXC
( कि कर्नेल में बनाया गया है!), जिसका उपयोग एक ही चीज़ के लिए (लेकिन आवश्यक कॉन्फ़िगरेशन के साथ) किया जा सकता है।
एक परीक्षण या निर्माण वातावरण में सरलीकृत उदाहरण docker
# Dockerfile
FROM ubuntu:17.10
RUN apt-get update && apt-get install -y build-essential
WORKDIR /workdir
docker build --tag my-builder .
फिर कमांड लाइन से, विभिन्न प्रकार से अपने प्रोजेक्ट या परीक्षण को उस वातावरण में संकलित करें
"लॉगिन" और पर्यावरण के भीतर संकलित करें, परीक्षण चलाएं आदि मान लें कि आप अपनी परियोजना के स्रोत निर्देशिका में हैं
$ docker run -v "$PWD:/workdir" --rm -it my-builder /bin/bash
# echo "Now in docker container"
# make
...
# build/test/my-test
...
# exit
$ echo "Build artifacts are now on your host OS Directory :) "
वन-ऑफ के रूप में उपयोग करें
$ docker run -v "$PWD:/workdir" --rm my-builder make
आप पर्यावरण चर भी पास कर सकते हैं
$ docker run -e "CROSS_COMPILE=arm-linux-gnueabi" -v "$PWD:/workdir" --rm my-builder make
या लगातार उदाहरण शुरू करें और फ़ाइलों को स्पष्ट रूप से कॉपी करें
$ Start our instance in background
$ docker run --name my-builder-inst -d my-builder
$ echo "Copy files to instance"
$ docker cp /my/source/dir my-builder-inst:/workdir
$ echo "run project build"
$ docker exec my-builder-inst make
$ echo "copy build artifacts"
$ docker cp my-builder-inst:/workdir/build /my/output/dir
$ echo "destroy and delete container"
$ docker rm -f my-builder-inst
वस्तुतः सैकड़ों अन्य उपयोग पैटर्न हैं, हालांकि, स्क्रिप्ट जैसी छवि परिभाषा, विस्तार योग्य चित्र और कमांड लाइन का उपयोग इसे विकास, परीक्षण और यहां तक कि तैनाती के वातावरण के लिए बेहद आकर्षक बनाता है।