اگرچه که تکنولوژیهای مجازی سازی سخت افزار ی مانند KVM ،Xen و Hyper-V برای اجرای چندین سیستمعامل مجزا بر روی یک میزبان فیزیکی عالی هستند، اما هزینههای مختلفی را از جهت عملکرد، منابع و زمان آماده سازی به همراه دارد؛ در واقع با توجه به مورد استفاده، ممکن است که نیازی به مجازی سازی کامل ماشین نباشد.
یک راهبرد مجازی سازی سبک، مخازن لینوکس یا LXC است که امکان مجازی سازی سطح سیستمعامل را فراهم میکند. بدون سربار ماشینهای مجازی اجرا شده، LXC امکان اجرای چندین سیستمعامل لینوکس را درون مخزن سبک فراهم میآورد. این مخازن میتوانند برای ایجاد یک محیط توسعه یا تست و یا استقرار برنامهها درون Sandbox (سندباکس)های امن بسیار مفید باشند.
تفاوت ماشینهای مجازی با مخازن در چیست؟
ماشین مجازی نیازمند یک لایه امولاتور و یا هایپروایزر است که با نصب سیستمعامل برای هر ماشین کامل میشود؛ در حالی که یک مخزن از ویژگیهای هسته لینوکس استفاده میکند تا یک محیط مجازی ایزوله را که شامل حافظه، دیسک، شبکه و غیره میشود را بر روی همان سیستم عامل فراهم کند.
Docker (داکر) چیست؟
داکر یک ابزار متن باز است که برای تسهیل توسعه مخازن لینوکس توسعه یافتهاست، به سرعت در حال مبدل شدن به یک استاندارد غیررسمی فناوریهای مخزن میباشد و توسط توزیعهای بزرگ لینوکس مانند Ubuntu و RedHat پذیرفته شدهاست.
داکر به عنوان یک فناوری کلیدی جهت استقرار برنامهها در محیطهای ابری مطرح شده است. در مقایسه با مجازی سازی سختافزاری معمول، سندباکس مخزن مبتنی بر داکر، مزایایی برای محیط استقرار برنامه نظیر جداسازی سبک، قابلیت حمل، سهولت نگهداری و غیره را به همراه دارد.
داکر نه تنها در محیط ابر، بلکه برای کابران عادی هم میتواند کاملاً مفید باشد، مخصوصاً وقتی که بخواهیم نرمافزار خاصی را تحت یک محیط مشخص لینوکس آزمایش کنیم. میتوان به سادگی یک مخزن داکر را برای محیط هدف راه اندازی کرد؛ نرمافزار را در محیط نصب و آزمایش کرد و پس از پایان کار مخزن را دور انداخت.
در این مقاله قصد داریم چگونگی نصب و مدیریت مخازن داکر را در CentOS تشریح کنیم. توجه داشته باشید که در حال حاضر داکر تنها توسط سیستمعاملهای میزبان 64 بیتی پشتیبانی میشود.
نصب داکر (Docker)
برای نصب داکر در CentOS، ابتدا به کمک دستور زیر ریپازیتوری EPEL را فعال کنید:
sudo rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
سپس با استفاده از فرمان yum، داکر را نصب و سرویس را اجرا کنید:
sudo yum install docker-io sudo service docker start sudo chkconfig docker on
پس از نصب داکر روی CentOS، لازم است که یوزر خود را به گروه docker اضافه کنید تا بتوانید داکر را به عنوان یک کاربر غیر روت اجرا نمایید. برای این منظور از دستور زیر استفاده کنید:
sudo usermod -a -G docker $USER
پس از اجرای این دستور یک بار از سیستم خارج شده و مجدداً وارد شوید تا تغییر گروه فعال شود. در این مرحله، شما باید قادر باشید که فرمان docker را به عنوان یک کاربر غیرممتاز اجرا کنید.
راهنمای استفاده از داکر (Docker)
برای ایجاد یک مخزن داکر جدید، ابتدا باید تصمیم بگیرید که چه Image (ایمیج)ی را به عنوان مخزن استفاده کنید. میتوانید برای این منظور در ایندکس رسمی ایمیجهای داکر که ایمیجهای عمومی را لیست میکند جستجو کنید.
ایندکس داکر، شامل ایمیجهای پایه لینوکس که توسط تیم داکر مدیریت میشود (مانند Ubuntu ،Debian ،Fedora ،CentOS) و نیز ایمیجهایی که با مشارکت کاربران ساخته شده است (مانند MySQL ،Redis ،WordPress) میشود.
به عنوان مثال، برای اجرای یک مخزن Ubuntu در حالت تعاملی، دستور زیر را اجرا کنید. آرگومان «/bin/bash» در داخل یک مخزن و پس از راه اندازی آن اجرا میشود.
docker run -i -t ubuntu /bin/bash
دستور بالا پس از اجرا برای اولین بار، ایمیجهای در دسترس داکر Ubuntu را دانلود و پس از آن یک مخزن داکر را با استفاده از ایمیج مذکور بوت میکند. مخزن Ubuntu بلافاصله راهاندازی میشود و یک خط فرمان را در داخل مخزن مشاهده خواهید کرد. به این صورت میتوانید به یک سیستمعامل Ubuntu تمام عیار در داخل سندباکس مخزن دسترسی داشتهباشید.
اگر در خط فرمان، «exit» را تایپ کنید، از مخزن خارج میشوید و مخزن متوقف میشود.
جهت مشاهده لیست کلیه مخازن (شامل موارد متوقف شده نیز میباشد)، دستور زیر را اجرا کنید:
docker ps –a
برای راه اندازی مجدد یک مخزن در حالت دیمون از دستور زیر استفاده کنید:
docker start [container-id]
جهت حذف یک مخزن متوقف شده دستور زیر را اجرا کنید:
docker rm [container-id]
پیوستن به یک مخزن که در پس زمینه در حال اجراست به منظور تعامل با آن، با استفاده از دستور زیر انجام میشود:
docker attach [container-id]
میتوان آزادانه، یک مخزن درحال اجرا را سفارشی کرد؛ به عنوان مثال یک برنامه جدید در آن نصب کنید. اگر میخواهید تغییرات در مخزن جاری ذخیره شود، نخست با دستور «exit» از حالت تعاملی مخزن خارج شوید. سپس، با استفاده از دستور زیر، ایمیج تغییر یافته را به عنوان یک ایمیج متفاوت ذخیره کنید:
docker commit [container-id] [new-image-name]
برای به دست آوردن container ID، میتوان از دستور «docker ps –a» همان طور که قبلاً هم اشاره شد استفاده کرد.
پس از ساخت ایمیج جدید مانند مثال فوق، میتوان یک مخزن جدید با استفاده از آن راه اندازی کرد.
همچنین میتوانید هر ایمیج مخزن عمومی (مانند Fedora ،wordpress و غیره) را دانلود و در یک ریپازیتوری محلی به صورت زیر ذخیره کنید:
docker pull [image name]
برای مشاهده کلیه ایمیجهای دانلود شده و یا ذخیره شده از دستور زیر استفاده کنید:
docker images
با دستور زیر میتوانید یک ایمیج خاص را برای بوت یک مخزن از آن انتخاب کنید:
docker run -i -t [image-id] /bin/bash
جهت حذف یک تصویر مخزن از ریپازیتوری محلی از دستور زیر استفاده کنید:
docker rmi [image-id]
2 دیدگاه. دیدگاه تازه ای بنویسید
سلام
من docker رو نصب کردم وبرای اجرای اون با مشکلات زیادی روبرو شدم من تو سایت های خارجی هم سر زدم
اما خودشون هم درگیرن با این مشکل.
مشخصات سیستم من : ویندوز 8.1 64 بیتی
ارور های Docker :
1-زمانی که Docker Quickstart Terminal اجرا میکنم Starting VM… هنگ میکنه و همینطوری میمونه.
2-ارور دیگه ای که میده :
Post http://127.0.0.1:2375/v1.20/containers/create: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
3-برنامه Kitematic هم که اصلآ اجرا نشد و تا 99 درصد میره و آخر ارور میده:
Machine IP could not be fetched. Please retry the setup. If this fails please file a ticket on our GitHub repo.
اگه راه حلی دارید ممنون میشم بگید
با تشکر
با سلام
به احتمال زیاد با آپدیت virtualbox به آخرین نسخه (نسخه بتا) مشکل حل خواهد شد.
جهت ارايه راه حل کاملتر، لینک راهنمایی که بر پایه آن داکر را نصب کرده اید ارسال نمایید تا بررسی شود.
موفق باشید