Docker یک برنامه اپن سورس بر پایه کانتیر ها یا محفظه ها است که این روزها نقل محافل سیستم ادمین ها و افرادی که با سرور ها سر و کار دارند شده است. البته کانتینر ها آنقدرها هم جدید نیستند! پس چه چیزی باعث محبوبیت Docker شده است؟ داکر برپایه linux containers یا همان lxc ساخته شده است که بر روی لینوکس اجرا میشود و استفاده از آن بسیار راحت و کارآمد است. زمانی که کانتینر یا جعبه های داکر را کاملاً با ماشینهای مجازی مقایسه کنیم میبینیم که ماشینهای مجازی تمام سربارهای مجازی را با خود حمل میکنند و یک سیستم در عین واحد باید چندین سیستم عامل را بر روی خود اجرا کند که عاقلانه به نظر نمیرسد و سرباری زیادی را با خود به همراه می آورد. کانتینتر های داکر منابع و موارد مشترک در سیستم عامل را به اشتراک گذاشته و از آنها به صورت بهینه تری استفاده میکند به همین دلیل است که Docker میتوانید در مواردی جایگزین ماشینهای مجازی شود برای مثال من در آزمایشگاه خودم اسپین های مختلفی را از توزیعها تست میکنم و کاملاً برای اینکار Docker را جایگزین ماشین مجازی کردهام در این مورد Docker بسیار سریعتر عمل میکند و مصرف منابع خیلی کمتری نسبت به ماشینهای مجازی دارد.
همچنین Docker برای دیتاسنترها نیز بسیار مناسب است و میتوانند در سرور ها در آن واحد داکر های بیشتری نسبت به ماشینهای مجازی اجرا کنند و این مورد در بحثهای پکیج ها و توزیعها کار را بسیار آسانتر و سبکتر میکند.
کانتینر یا حامل ها Docker قسمتی از یک نرمافزار را بر روی فایل سیستم کاملی اجرا میکنند که تمام چیزهایی که برنامه برای اجرا به آن نیاز دارد را در خود دارند همانند : کدها ؛ کتابخانههای سیستم ؛ ابزارهای سیستمی و هرچیز دیگری که بر روی سرور نصب میکنید و این موادر تضمین میکند که سیستم همیشه همانند قبل و همانطوری که بوده اجرا شود و بدون در نظر گرفتن محیطی که در آن قرار دارد کار خود را به خوبی انجام دهد.
Docker به صورت بومی بر روی سیستمهای لینوکسی نصب و اجرا میشود اما با استفاده از محیط های مجازی میتوان آن را بر روی OSX و ویندوز نیز آورد. از نقاط قوت داکر میتوان به نصب آسان و سریع در هرسه پلتفرم اشاره کرد.
نصب کردن Docker
تقریباً به اندازه کافی در مورد داکر و اینکه چه کاری انجام میدهد صحبت کردیم و فهمیدیم که در داکر میتوانید نرمافزار خود را به صورتی که دوست دارید کانفیگ کرده و بدون در نشر گرفتن سیستم عاملی که در آن هستید و بدون نیاز به ماشین مجازی نرمافزار خود را هرجایی که خواستید و با سرعتی بیشتر از ماشینهای مجازی و مصرف منابعی کمتر اجرا کنید؛ حال وقت آن رسیده تا ترمینال را باز کرده و کمی تفریح کرده و به داکر سلام کنیم.
بهترین روش برای نصب Docker استفاده از نصاب خود داکر است که فوقالعاده کامل است. در زیر توجه کنید که سیستم من به راحتی شناسایی شده و نیازمندی های آن به صورت خودکار نصب میشوند :
allf@204:~$ wget -qO- https://get.docker.com/ | sh [sudo] password for allf: modprobe: FATAL: Module aufs not found. + sudo -E sh -c sleep 3; apt-get update + sudo -E sh -c sleep 3; apt-get install -y -q linux-image-extra-4.4.0-040400-generic linux-image-extra-virtual + sleep 10 apparmor is enabled in the kernel and apparmor utils were already installed + sudo -E sh -c apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D + sudo -E sh -c mkdir -p /etc/apt/sources.list.d + sudo -E sh -c echo deb https://apt.dockerproject.org/repo ubuntu-wily main > /etc/apt/sources.list.d/docker.list + sudo -E sh -c sleep 3; apt-get update; apt-get install -y -q docker-engine + sudo -E sh -c docker version
همانطور که در بالا میبینید نصاب داکر از دستورات استاندارد لینوکسی استفاده میکند ؛ پس از آنکه کار نصاب تمام شد نیاز دارید تا خود را به گروه داکر اضافه کنید و پس از آن میتوانید داکر را بدون دسترسی روت هم اجرا کنید (به یاد داشته باشید که پس از اضافه شدن به گروه باید از نشست خود خارج شده و log out کنید پس از log in کردن دوباره قابلیت فعال خواهد شد)
برای اینکار دستور زیر را وارد میکنیم :
sudo usermod -aG docker test
به جای test یوزر خود را وارد میکنیم.
اجرای Hello Wrold!
میتوانیم برای اطمینان از اینکه داکر درست نصب شده یک hello world در آن اجرا کنیم :
allf@204:~$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world [snip] Hello from Docker. This message shows that your installation appears to be working correctly
این دستور یک سلام دنیا را بر روی داکر نصب میکند که نتیجه آن سلام کردن داکر به شما در ترمینال است. Docker یک ابزار جالب به نام whalesay دارد که همچون cowsay در لینوکس است و یک وال به شما میدهد که میتواند برای آن دیالوگی را تعریف کنید. دستور زیر را در ترمینال وارد کنید :
allf@204:~$ docker run docker/whalesay cowsay "Visit digispark.ir every day!"
به دلیل اینکه اولین بار بود که از داکر استفاده میکردیم یک سری ایمیج دانلود شد؛ برای دفعات بعدی میتوانید بدون نیاز به دانلود Docker را اجرا کنید. برای مشاهده ایمیج های دانلود شده توسط داکر میتوانید دستور زیر را وارد کنید :
allf@204:~$ sudo docker images [sudo] password for allf: REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6ba66e537a 7 weeks ago 960 B docker/whalesay latest ded5e192a685 6 months ago 247 MB
این ایمیج ها دقیقاً در مسیر var/lib/docker ذخیره میشوند.
با توجه به اینکه فعلاً از طرف داکر تحریم هستیم امیدواریم که این تحریم ها به دلیل برجام سریعتر رفع شده و سرویس های داکر نیز در دسترس همه هموطنان قرار بگیرد.
در قسمت بعدی از این مقاله در مورد ایمیج ها و کانتینر هم صحبت خواهیم کرد.
با عرض سلام
خیلی ممنون از مطلب آموزش تون.
یک مشکلی در کار کردن با داکر داشتم. من داکر ایمیج را دانلود و نصب کردم. درمرحله استفاده از آن پیام می دهد که اول دایرکتوری home را mount کنید. دستور run که استفاده می کنم به این صورت است:
docker run -v /Users/:/host -p 9000:9000 -p 8000:8000 -p 5000:5000 -t -i bjoffe/openface_flask_v2 /bin/bash
مشکل من اینجاست که وقتی داکر اجرا میشود فایل های کامپیوتر خودم را نمی بینم.
ممنون میشوم من را راهنمایی کنید.
سلام
ضمن تشکر از توجه ویژه شما به این مطلب، من چند ماهی هست که مجددا تصمیم گرفتم از لینوکس به سمت ویندوز مهاجرت کنم. برای پاسخ دادن این سوال شما باید لینوکس را فعال کنم تا بتونم پاسخ صحیح و منتطقی خدمت شما دوست عزیز ارسال کنم. از این رو از دوستانی که در زمینه لینوکس همچنان کار میکنند تقاضا دارم که این سوال را پاسخ دهند.
در ادامه مراحلی را که تا اینجا رفتهاید توضیح دهید؛ ممکن است مشکل خیلی ساده حل شود.
سلام لطفا سوالتون رو بصورت واضح بیان کنید میتونید با این ایدی تماس بگیریید. ramin13681212@
ضمن تشکر از توجه شما، ترجیها پاسخ مشکلات را در همینجا به صورت کامنت بنویسید که دیگر کابران هم بتوانند استفاده کنند.
سلام
خسته نباشید
من برای نصب برنامه meep که فقط روی لینوکس نصب میشه داکر نصب کردم الان برای نصب این برنامه دستور
apt-get insatall meep باید استفاده کنم سوالم اینه که این دستور رو توی docker quick.. میزنم command not found میده روش نصب درسته چیکار باید بکنم؟مرسی
با سلام
ضمن تشکر از توجه شما، بنده در این زمینه اطلاعات به روز ندارم، از دیگر کاربران که با این موضوع آشنا هستند، تقاضا دارم تا پاسخ شما را از همین طریق اعلام کنند.
سلام
من بالاخره بعد update و ubuntu تونستم نصب کنم شمایا دوستان اظلاع دارین که چرا بعد از نصب پنجره کامند رو که می بندم و دوباره در محیط جدید ubuntu , برنامه ای رو که نصب کردم رو ارور not found command میده
با سلام
ضمن تشکر از توجه شما، بنده خیلی وقت هست که با لینوکس کار نمیکنم. از این رو از دیگر کاربران که تخصص کافی دارند، تقاضا دارم در این بحث شرکت کنند.