اگرچه که تکنولوژیهای مجازی سازی سخت افزار ی مانند KVM ،Xen و Hyper-V برای اجرای چندین سیستمعامل مجزا بر روی یک میزبان فیزیکی عالی هستند، اما هزینههای مختلفی را از جهت عملکرد، منابع و زمان آماده سازی به همراه دارد؛ در واقع با توجه به مورد استفاده، ممکن است که نیازی به مجازی سازی کامل ماشین نباشد.
یک راهبرد مجازی سازی سبک، مخازن لینوکس یا LXC است که امکان مجازی سازی سطح سیستمعامل را فراهم میکند. بدون سربار ماشینهای مجازی اجرا شده، LXC امکان اجرای چندین سیستمعامل لینوکس را درون مخزن سبک فراهم میآورد. این مخازن میتوانند برای ایجاد یک محیط توسعه یا تست و یا استقرار برنامهها درون Sandbox (سندباکس)های امن بسیار مفید باشند.
اما تفاوت ماشینهای مجازی با مخازن در چیست؟ ماشین مجازی نیازمند یک لایه امولاتور و یا هایپروایزر است که با نصب سیستمعامل برای هر ماشین کامل میشود؛ در حالی که یک مخزن از ویژگیهای هسته لینوکس استفاده میکند تا یک محیط مجازی ایزوله را که شامل حافظه، دیسک، شبکه و غیره میشود را بر روی همان سیستم عامل فراهم کند.
Docker (داکر) یک ابزار متن باز است که برای تسهیل توسعه مخازن لینوکس توسعه یافتهاست، به سرعت در حال مبدل شدن به یک استاندارد غیررسمی فناوریهای مخزن میباشد و توسط توزیعهای بزرگ لینوکس مانند Ubuntu و RedHat پذیرفته شدهاست.
داکر به عنوان یک فناوری کلیدی جهت استقرار برنامهها در محیطهای ابری مطرح شده است. در مقایسه با مجازی سازی سختافزاری معمول، سندباکس مخزن مبتنی بر داکر، مزایایی برای محیط استقرار برنامه نظیر جداسازی سبک، قابلیت حمل، سهولت نگهداری و غیره را به همراه دارد.
داکر نه تنها در محیط ابر، بلکه برای کابران عادی هم میتواند کاملاً مفید باشد، مخصوصاً وقتی که بخواهیم نرمافزار خاصی را تحت یک محیط مشخص لینوکس آزمایش کنیم. میتوان به سادگی یک مخزن داکر را برای محیط هدف راه اندازی کرد؛ نرمافزار را در محیط نصب و آزمایش کرد و پس از پایان کار مخزن را دور انداخت.
در این مقاله قصد داریم چگونگی نصب و مدیریت مخازن داکر را در CentOS تشریح کنیم. توجه داشته باشید که در حال حاضر داکر تنها توسط سیستمعاملهای میزبان ۶۴ بیتی پشتیبانی میشود.
نصب داکر (به انگلیسی Docker)
برای نصب داکر در CentOS، ابتدا به کمک دستور زیر ریپازیتوری EPEL را فعال کنید:
1
|
sudo rpm –Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
|
سپس با استفاده از فرمان yum، داکر را نصب و سرویس را اجرا کنید:
1
2
3
4
5
|
sudo yum install docker–io
sudo service docker start
sudo chkconfig docker on
|
پس از نصب داکر روی CentOS، لازم است که یوزر خود را به گروه docker اضافه کنید تا بتوانید داکر را به عنوان یک کاربر غیر روت اجرا نمایید. برای این منظور از دستور زیر استفاده کنید:
1
|
sudo usermod –a –G docker $USER
|
پس از اجرای این دستور یک بار از سیستم خارج شده و مجدداً وارد شوید تا تغییر گروه فعال شود. در این مرحله، شما باید قادر باشید که فرمان docker را به عنوان یک کاربر غیرممتاز اجرا کنید.
راهنمای استفاده از داکر (به انگلیسی Docker)
برای ایجاد یک مخزن داکر جدید، ابتدا باید تصمیم بگیرید که چه Image (ایمیج)ی را به عنوان مخزن استفاده کنید. میتوانید برای این منظور در ایندکس رسمی ایمیجهای داکر که ایمیجهای عمومی را لیست میکند جستجو کنید.
ایندکس داکر، شامل ایمیجهای پایه لینوکس که توسط تیم داکر مدیریت میشود (مانند Ubuntu ،Debian ،Fedora ،CentOS) و نیز ایمیجهایی که با مشارکت کاربران ساخته شده است (مانند MySQL ،Redis ،WordPress) میشود.
به عنوان مثال، برای اجرای یک مخزن Ubuntu در حالت تعاملی، دستور زیر را اجرا کنید. آرگومان «/bin/bash» در داخل یک مخزن و پس از راه اندازی آن اجرا میشود.
1
|
docker run –i –t ubuntu /bin/bash
|
دستور بالا پس از اجرا برای اولین بار، ایمیجهای در دسترس داکر Ubuntu را دانلود و پس از آن یک مخزن داکر را با استفاده از ایمیج مذکور بوت میکند. مخزن Ubuntu بلافاصله راهاندازی میشود و یک خط فرمان را در داخل مخزن مشاهده خواهید کرد. به این صورت میتوانید به یک سیستمعامل Ubuntu تمام عیار در داخل سندباکس مخزن دسترسی داشتهباشید.
اگر در خط فرمان، «exit» را تایپ کنید، از مخزن خارج میشوید و مخزن متوقف میشود.
جهت مشاهده لیست کلیه مخازن (شامل موارد متوقف شده نیز میباشد)، دستور زیر را اجرا کنید:
1
|
docker ps –a
|
برای راه اندازی مجدد یک مخزن در حالت دیمون از دستور زیر استفاده کنید:
1
|
docker start [container–id]
|
جهت حذف یک مخزن متوقف شده دستور زیر را اجرا کنید:
1
|
docker rm [container–id]
|
پیوستن به یک مخزن که در پس زمینه در حال اجراست به منظور تعامل با آن، با استفاده از دستور زیر انجام میشود:
1
|
docker attach [container–id]
|
میتوان آزادانه، یک مخزن درحال اجرا را سفارشی کرد؛ به عنوان مثال یک برنامه جدید در آن نصب کنید. اگر میخواهید تغییرات در مخزن جاری ذخیره شود، نخست با دستور «exit» از حالت تعاملی مخزن خارج شوید. سپس، با استفاده از دستور زیر، ایمیج تغییر یافته را به عنوان یک ایمیج متفاوت ذخیره کنید:
1
|
docker commit [container–id] [new–image–name]
|
برای به دست آوردن container ID، میتوان از دستور «docker ps –a» همان طور که قبلاً هم اشاره شد استفاده کرد.
پس از ساخت ایمیج جدید مانند مثال فوق، میتوان یک مخزن جدید با استفاده از آن راه اندازی کرد.
همچنین میتوانید هر ایمیج مخزن عمومی (مانند Fedora ،wordpress و غیره) را دانلود و در یک ریپازیتوری محلی به صورت زیر ذخیره کنید:
1
|
docker pull [image name]
|
برای مشاهده کلیه ایمیجهای دانلود شده و یا ذخیره شده از دستور زیر استفاده کنید:
1
|
docker images
|
با دستور زیر میتوانید یک ایمیج خاص را برای بوت یک مخزن از آن انتخاب کنید:
1
|
docker run –i –t [image–id] /bin/bash
|
جهت حذف یک تصویر مخزن از ریپازیتوری محلی از دستور زیر استفاده کنید:
1
|
docker rmi [image–id]
|
بن مایه: https://blog.iranserver.com