اگرچه که تکنولوژیهای مجازی سازی سخت افزاری مانند KVM ،Xen و Hyper-V برای اجرای چندین سیستمعامل مجزا بر روی یک سیستم میزبان فیزیکی عالی هستند، اما این کار هزینههای مختلفی را از جهت عملکرد، منابع و زمان آماده سازی به همراه دارد؛ در واقع با توجه به مورد استفاده، ممکن است که نیازی به مجازی سازی کامل ماشین نباشد. یک راهبرد مجازی سازی سبک، مخازن لینوکس یا LXC است که امکان مجازی سازی سطح سیستمعامل را فراهم میکند. بدون سربار ماشینهای مجازی اجرا شده، LXC امکان اجرای چندین سیستمعامل لینوکس را درون مخزن سبک فراهم میآورد. این مخازن میتوانند برای ایجاد یک محیط توسعه یا تست و یا استقرار برنامهها درون Sandbox (سندباکس)های امن بسیار مفید باشند. در مقاله پیش رو به مراحل نصب داکر در CentOS میپردازیم.
تفاوت ماشینهای مجازی با مخازن در چیست؟
ماشین مجازی نیازمند یک لایه امولاتور و یا هایپروایزر است که با نصب سیستمعامل برای هر ماشین کامل میشود؛ در حالی که یک مخزن از ویژگیهای هسته لینوکس استفاده میکند تا یک محیط مجازی ایزوله را که شامل حافظه، دیسک، شبکه و غیره میشود را بر روی همان سیستم عامل فراهم کند.
Docker (داکر) چیست؟
داکر چیست؟ یک ابزار متن باز است که برای تسهیل توسعه مخازن لینوکس توسعه یافتهاست، به سرعت در حال مبدل شدن به یک استاندارد غیررسمی فناوریهای مخزن میباشد و توسط توزیعهای بزرگ لینوکس مانند Ubuntu و RedHat پذیرفته شدهاست.
داکر به عنوان یک فناوری کلیدی جهت استقرار برنامهها در محیطهای ابری مطرح شده است. در مقایسه با مجازی سازی سختافزاری معمول، سندباکس مخزن مبتنی بر داکر، مزایایی برای محیط استقرار برنامه نظیر جداسازی سبک، قابلیت حمل، سهولت نگهداری و غیره را به همراه دارد.
داکر نه تنها در محیط ابر، بلکه برای کاربران عادی هم میتواند کاملاً مفید باشد، مخصوصاً وقتی که بخواهیم نرمافزار خاصی را تحت یک محیط مشخص لینوکس آزمایش کنیم. میتوان به سادگی یک مخزن داکر را برای محیط هدف راه اندازی کرد؛ نرمافزار را در محیط نصب و آزمایش کرد و پس از پایان کار مخزن را دور انداخت.
در این مقاله قصد داریم چگونگی نصب و مدیریت مخازن داکر را در CentOS تشریح کنیم. توجه داشته باشید که در حال حاضر داکر تنها توسط سیستمعاملهای میزبان ۶۴ بیتی پشتیبانی میشود.
بیشتر بخوانید: آموزش گام به گام نصب داکر در ویندوز
پیش نیاز نصب Docker در CentOS
برای نصب داکر در CentOs لازم است از قبل این موارد را آماده کنید:
- نسخه ۶۴ بیتی CentOS Droplet: Docker نیاز به یک نسخه ۶۴ بیتی از CentOS و نسخه کرنل حداقل ۳٫۱۰ یا بالاتر دارد. نسخه پیشفرض CentOS Droplet ۶۴ بیتی این پیشنیازها را در خود خواهد داشت.
- کاربر Root: دستورات باید با یک کاربر Root اجرا شوند. در صورتی که به کاربر Root دسترسی ندارید باید از sudo در ابتدای آن استفاده کنید.
- یک سرور مجازی و دسترسی به ترمینال
- غیرفعال بودن فایروال برای جلوگیری از خطاهای احتمالی به دلیل محدودیت
- یک VPN قوی برای دور زدن تحریمات احتمالی
مراحل نصب داکر در CentOs
گام اول: بهروزرسانی سیستم
قبل از هرچیز مطمئن شوید که سیستم شما بهروز است. برای این کار از دستورات زیر استفاده کنید:
sudo yum update -y
این دستور بستههای موجود روی سیستم را بهروز میکند.
گام دوم: نصب مخزن EPEL یا Extra Packages for Enterprise Linux
Docker نیاز به بستههایی دارد که در مخزن EPEL موجود است. برای نصب آن، دستور زیر را اجرا کنید:
sudo yum install epel-release -y
گام سوم: نصب بستههای مورد نیاز
در CentOS 6 نیاز به نصب برخی از بستههای ضروری وجود دارد. این بستهها شامل device-mapper و lxc است:
sudo yum install -y yum-utils device-mapper-event-libs device-mapper-persistent-data lxc lxc-libs
گام چهارم: اضافه کردن مخزن داکر
داکر در مخازن پیشفرض CentOS 6 موجود نیست، بنابراین باید مخزن آن را بهصورت دستی اضافه کنید:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
گام پنجم: نصب داکر
پس از اضافه کردن مخزن داکر، میتوانید Docker را با استفاده از دستور زیر نصب کنید:
sudo yum install docker-io
پس از نصب و راهاندازی داکر، میتوانید با اجرای دستور زیر مطمئن شوید که نصب با موفقیت انجام شده است. این دستور نسخه داکر نصب شده را نمایش میدهد:
sudo docker --version
گام ششم: شروع و فعالسازی داکر
برای شروع استفاده از داکر، باید سرویس داکر را راهاندازی و فعال کنید:
sudo service docker start sudo chkconfig docker on
گام هفتم: اضافه کردن کاربر
پس از نصب داکر روی CentOS، لازم است که یوزر خود را به گروه docker اضافه کنید تا بتوانید داکر را به عنوان یک کاربر غیر روت اجرا نمایید. برای این منظور از دستور زیر استفاده کنید:
sudo usermod -a -G docker $USE
پس از اجرای این دستور یک بار از سیستم خارج شده و مجدداً وارد شوید تا تغییر گروه فعال شود. در این مرحله، شما باید قادر باشید که فرمان docker را به عنوان یک کاربر غیرممتاز اجرا کنید.
گام هشتم: اجرای اولین کانتینر
برای اطمینان از اینکه داکر به درستی نصب و اجرا شده است، یک کانتینر تست را اجرا کنید:
sudo docker run hello-world
این دستور یک کانتینر ساده که پیام “Hello from Docker!” را چاپ میکند اجرا میکند.
مشکلات احتمالی نصب داکر در CentOs
در این بخش خطاهایی را بررسی میکنیم که ممکن است هنگام نصب Docker در CentOS با آنها مواجه شوید.
خطای “Kernel Version”
داکر برای اجرا نیاز به نسخه کرنل 3.10 یا بالاتر دارد. برای CentOS 6 که بهصورت پیشفرض از نسخههای قدیمیتر کرنل استفاده میکند، باید ابتدا کرنل را بهروزرسانی کنید. برای ارتقاء کرنل، میتوانید مخازن ELRepo را اضافه کرده و از دستورات زیر استفاده کنید:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
سپس بعد از نصب کرنل جدید، سیستم خود را ریبوت کنید:
sudo reboot
عدم اجرای سرویس داکر
در صورتی که سرویس داکر به درستی اجرا نشود، میتوانید لاگهای مربوطه را بررسی کنید:
sudo tail -f /var/log/messages
بیشتر بخوانید: آموزش نصب داکر روی اوبونتو
راهنمای استفاده از داکر (Docker)
برای ایجاد یک مخزن داکر جدید، ابتدا باید تصمیم بگیرید که چه Image (ایمیج)ی را به عنوان مخزن استفاده کنید. میتوانید برای این منظور در ایندکس رسمی ایمیجهای داکر که ایمیجهای عمومی را لیست میکند جستجو کنید.
ایندکس داکر، شامل ایمیجهای پایه لینوکس که توسط تیم داکر مدیریت میشود (مانند Ubuntu ،Debian ،Fedora ،CentOS) و همچنین Images هایی که با مشارکت کاربران ساخته شده است (مانند 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]
جمع بندی
نصب داکر روی CentOS 6 به دلیل قدیمی بودن سیستمعامل و نیاز به بهروزرسانی کرنل ممکن است کمی پیچیده باشد، اما با دنبال کردن مراحل فوق، میتوانید به راحتی داکر را نصب و از آن برای ایجاد و مدیریت کانتینرها استفاده کنید. اگر در مورد نصب داکر در CentOs تجربه یا سوالی دارید میتوانید آن را در بخش نظرات به اشتراک بگذارید.
سؤالات متداولی که شما میپرسید؟
- خطای Docker command not found in CentOS چیست؟
این خطا اغلب زمانی نمایش داده میشود که Docker روی سیستم شما نصب نشده است، بنابراین دستورات مربوط به داکر شناسایی نمیشود. پیکربندی نادرست PATH نیز میتواند دلیل دیگری برای نمایش این خطا باشد: متغیر محیطی PATH ممکن است شامل دایرکتوری حاوی فایل اجرایی Docker نباشد و از یافتن دستورات Docker توسط سیستم جلوگیری کند.
- چگونه بفهمم که docker روی Centos نصب شده است؟
برای بررسی اینکه آیا Docker را نصب کردهاید، دستور docker ps یا docker info را در صفحه ترمینال اجرا کنید تا از نصب و اجرای داکر مطمئن شوید. اگر دستور شناسایی نشد، ممکن است لازم باشد ابتدا Docker را نصب کنید.
منابع:
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 به آخرین نسخه (نسخه بتا) مشکل حل خواهد شد.
جهت ارايه راه حل کاملتر، لینک راهنمایی که بر پایه آن داکر را نصب کرده اید ارسال نمایید تا بررسی شود.
موفق باشید