داکر (Docker) برای همه

99,000 تومان 74,000 تومان

25,000 تومان (25%) تخفیف ویژه

مدرس: محمد بابازاده

مخاطبان: برنامه‌نویسان و مدیران سیستم

مدت‌زمان: ۶ ساعت

حجم: ۹۰۰ مگابایت

پیش نیاز: آشنایی با سیستم‌عامل لینوکس

نوع دسترسی: قابل دانلود بلافاصله پس از خرید

فرمت و کیفیت: فایل mp4 و کیفیت Full-HD (ابعاد 1080*1920)

تابحال 82 نفر این دوره آموزشی را تهیه کرده‌اند.
تضمین بازگشت ۱۰۰٪ وجه

تا ۷ روز پس از خرید، در صورت عدم رضایت می‌توانید درخواست بازگشت وجه دهید و هیچگونه سوالی از شما پرسیده نخواهد شد.

منتورشیپ

در هنگام مشاهده آموزش‌ها، هرزمان که سوالی داشتید می‌توانید در قسمت منتورشیپ بپرسید و در سریع‌ترین زمان ممکن بهترین راه حل را دریافت کنید.

پرداخت امن

پرداخت امن توسط زرین پال

داکر برای همه

آشنایی با داکر (Docker)

این روزها واژه Docker و صحبت در رابطه با Container Platform ها بحث داغی در محافل فناوری است. داکر یک پلتفرم جدید است که با استفاده از مجازی سازی در سطح سیستم عامل به توسعه دهندگان قابلیت توسعه، ادغام، Build، دیپلوی و مدیریت مداوم و یکپارچه برنامه‌ها در هر سیستم عامل و پلتفرمی را می‌دهد.

برای آشنایی با داکر ویدیو زیر را تماشا کنید.

به زبان ساده، در صنعت حمل و نقل با استفاده از کانتیرها می‌توان هر نوع کالایی را بسته بندی و جابجا کرد. در واقع استفاده از کانتینرها روشی استاندارد برای بسته بندی کالا بدون در نظر گرفتن محتوای آن است. داکر (Docker) با استفاده از کانتینرها رابطی یکپارچه برای راه اندازی برنامه ها در اختیار توسعه دهندگان می‌گذارد و محیط اجرای برنامه‌ها را ایزوله سازی می‌کند که این فرآیند منجر به بهبود مصرف منابع سخت افزاری می‌شود و برنامه می‌تواند فارغ از محیط عملیاتی، سیستم عامل، وابستگی و … اجرا شود.

کانتینر داکر

امروزه داکر و پروژه Moby مخاطبین بسیار زیادی را در سراسر دنیا جذب کرده است و در حال حاضر، بیش از ۱۴ میلیون اپلیکیشن داکر در حال سرویس دهی هستند، ۹۰۰ هزار برنامه داکر وجود دارد و تقاضای آشنایی با داکر در موقعیت های شغلی مختلف ۷۷ هزار درصد رشد داشته است.

چه اشخاصی نیاز به استفاده از داکر دارند؟

Docker ابزاری مناسب برای تمام برنامه نویسان و توسعه دهندگان است زیرا می‌توانند برنامه ای که توسعه داده اند را فارغ از پلتفرم، در هر محیطی اجرا کنند. کانتینر این امکان را به برنامه نویسان می‌دهد تا یک برنامه را با تمام ماژول ها و وابستگی ها (مانند کتابخانه ها و توابع) ایزوله کرده و در سیستم عامل های مختلف اجرا کند. برای مثال اگر شما یک توسعه دهنده PHP هستید احتمالا باید یک وب سرور (مثلا Apache) را بر روی سیستم خود نصب کنید همچنین نیاز به یک پایگاه داده MySQL دارید و اگر پروژه گسترش پیدا کند ممکن است نیاز به نصب چند ماژول اضافی برای PHP و تنظیمات مختلف داشته باشید.

همچنین شما به عنوان یک مدیر سیستم با استفاده از داکر می‌توانید راحت تر از همیشه برنامه ها را در محیط عملیاتی اجرا کنید و از سرعت و راحتی داکر لذت ببرید.

ویدیو نمونه دوره - فصل ۶ قسمت ۴

در این ویدیو با کاربرد Volume های داکر در عمل آشنا خواهیم شد.


دلایل محبوبیت داکر

۱- راحتی در استفاده

بخش زیادی از محبوبیت داکر (Docker) به دلیل راحتی در یادگیری و استفاده از آن است. داکر متن باز است و برای استفاده از داکر تنها کافیست یک کامپیوتر که از VitrualBox پشتیبانی می‌کند داشته باشید. داکر در Windows و MacOS به راحتی توسط نسخه Desktop قابل استفاده است و در Linux نیز به خوبی پشتیبانی می‌شود.

همانطور که پروژه های جاوایی در دستگاه هایی اجرا می‌شوند که JVM داشته باشند، کانتینرهای داکر نیز در ماشین هایی اجرا می‌شوند که داکر در آن‌ در حال اجرا باشد. تمام خصوصیات، ویژگی ها و نیازمندی های اپلیکیشن در یک Dockerfile توصیف می‌شود و در هر پلتفرم و سیستم عاملی توانایی اجرای برنامه وجود دارد.

قابلیت تکثیر در تمام پلتفرم ها باعث می‌شود یک برنامه یا سرویس، فارغ از هرگونه وابستگی ها در هر سیستم عامل و پلتفرمی قابلیت اجرا داشته باشد. در گذشته تیم های توسعه و تیم های عملیات نرم افزار باهم فاصله زیادی داشتند. برنامه نویسان ویژگی های جدید سیستم را توسعه می‌دادند و زمانی که فرآیند توسعه تکمیل می‌شد، کد منبع ورژن جدید را به تیم عملیات که در واقع مدیران سیستم بودند تحویل می‌دادند. این فرآیند باعث بروز مشکلاتی می‌شد، برای مثال مدیران سیستم از نحوه عملکرد برنامه اطلاعی نداشتند و نمی‌توانستند در صورت بروز مشکل در سطح نرم افزار کاری انجام دهند و همچنین برنامه نویسان نیز که خودشان کد را توسعه داده بودند و دید کامل به کد منبع داشتند، نمی‌توانستند برنامه را در محیط عملیاتی اجرا کنند زیرا این کار جزو وظایف مدیران سیستم بود. Docker به دلیل ویژگی کانتینر پلتفرم در هر محیطی قابل اجراست و برنامه نویسان می‌توانند نحوه اجرای کدهای خود در محیط عملیاتی را در یک Dockerfile بنویسند و مدیران سیستم نیز به راحتی توسط Dockerfile برنامه را روی سرورهای عملیاتی اجرا و مدیریت کنند. بخشی از فرهنگ DevOps کاهش فاصله میان تیم های توسعه و عملیات است که در دوره با این فرآیند بیشتر آشنا خواهیم شد.

۳- ایزوله سازی

تنظیمات و وابستگی هایی که بین کانتینرها وجود دارد باعث هیچگونه تاثیری در تنظیمات سیستم عامل نخواهد شد و این مزیت بزرگی برای کانتینر پلتفرم ها است. با استفاده از ایزوله سازی اپلیکیشن قابلیت اجرای برنامه در هر سیستم عامل و ماشینی فارغ از تنظیمات سیستم عامل مورد نظر وجود دارد. برای مثال می‌توانید اپلیکیشن فرانت اند، بک اند، دیتابیس و وب سرور خود را به صورت کانتینرهای مرتبط باهم اما ایزوله در سطح سیستم عامل اجرا کنید و از ایجاد تداخل بین تنظیمات سیستم عامل و سرویس ها جلوگیری کنید.

۴- مقیاس پذیری سریع سرویس‌ها

در روزهای نخستین توسعه نرم افزار تنها راهی که برای مقیاس پذیری برنامه وجود داشت خرید یا اجاره سرورهای سخت افزاری بیشتر بود و مقیاس پذیری برنامه های پربازدید، هزینه زیادی ایجاد می‌کرد و نیازمند هزاران دلار برای خرید سرورهای جدید و Scale سیستم بود. برخلاف ماشین های مجازی، کانتینر پلتفرم روش مناسبی برای استفاده بهینه از سخت افزار و منابع است. کانتینرها می‌توانند از منابع به صورت اشتراکی استفاده کنند و مصرف قابل توجهی در هزینه های سازمان داشته باشند.

۵- تحویل سریع‌تر نرم‌افزار (ادغام و تحویل مداوم – CI/CD)

CI یا Continues Integration (ادغام مداوم) فرآیندی است که توسعه دهندگان می‌توانند توسط یک ورژن کنترل کد مانند Git به صورت مداوم فیچر های مختلف برنامه را توسعه دهند و با کد اصلی به صورت اتوماتیک ادغام کنند.

CD یا (Continues Delivery) (تحویل مداوم) فرآیندی در مهندسی نرم افزار است که در طی آن تیم های نرم افزاری برنامه را در چرخه های زمانی کوتاه تحویل می‌دهند. این بدین معناست که محیط تست و توسعه و عملیاتی برنامه یکسان است و با استفاده از داکر (Docker) برنامه در هر پلتفرم و سیستم عاملی به صورت ایزوله اجرا می‌شود.

۶- معماری میکرو سرویس

معماری میکرو سرویس

محبوبیت استفاده از معماری میکرو سرویس در سازمان هایی که ترافیک دریافتی بالایی دارند در سال های اخیر افزایش یافته است و کانتینر پلتفرم داکر به پیاده سازی معماری میکرو سرویس کمک شایانی می‌کند.

سیستم های نرم افزاری از ساختارهای Monolithic شروع شدند که سرویس های مختلف اپلیکیشن به صورت یکپارچه در یک کد منبع مدیریت می‌شد و پس از مدتی یک کد منبع حجیم و غیرقابل انطعاف وجود داشت که با بروز خطا در یک قسمت کد، عملکرد سایر قسمت های کد منبع دچار مشکل می‌شد. به تدریج با محبوبیت اینترنت و افزایش کاربران و همچنین افزایش ترافیک دریافتی سرویس دهنده های بزرگ،‌ ساختار Monolithic باعث صرف زمان زیادی در Maintain می‌شد و برای مقیاس پذیری هزینه بالایی به وجود می‌آورد. به همین دلیل در سال های اخیر استفاده از معماری های میکرو سرویس و ابری محبوبیت بالایی در سازمان های بزرگ پیدا کرده است به دلیل اینکه در ساختار میکروسرویس، معماری سرویس ها متشکل از سرویس های کوچک هست که فقط یک کار انجام می‌دهند، اما همین یک کار را به خوبی انجام می‌دهند. به زبان ساده کد منبع اپلیکیشن در ساختار Monolithic از یک کد حجیم و غیرقابل انعطاف به بخش های کوچیک تری شکسته می‌شود تا توسعه، مدیریت و مقیاس پذیری برنامه در ساختار میکرو سرویس راحت تر شود و با از کار افتادن یک سرویس، بقیه سرویس ها دچار تداخل و خطا نشوند.

۷- امنیت

امنیت ذغدغه بزرگی در زمینه IoT است. برنامه هایی که روی کانتینر پلتفرم داکر اجرا می‌شوند امنیت بیشتری نسبت به برنامه هایی که در سطح سیستم عامل خام نصب می‌شوند دارند. اگر یک کانتینر دچار مخاطره ای شود، نمی‌تواند تاثیری رو کانتینرهای مجزای دیگر یا سیستم عامل بگذارد. کانتینرها با استفاده از ایزوله سازی در PID، شبکه و NameSpace ها امنیت بیشتری به ارمغان می‌آورند.

اگر از نگاه یک معمار سیستم به امنیت داکر نگاه کنیم، داکر با استفاده از cgroups و namespace ها می‌تواند منابع مورد نیاز را به کانتینرها اختصاص دهد به صورتی که یک کانتینر نمی‌تواند به Process کانتینرهای دیگر دسترسی داشته باشد و هر کانتینر با استفاده از network stack مربوط به خود، دسترسی های مشخصی برای برقراری ارتباط دارد. البته همانطور که می‌دانید بخش مهمی از امنیت داکر به مهندسی که معماری داکرایز شده را طراحی می‌کند بستگی دارد تا تمام الزامات امنیتی را رعایت کند. 

۸- داکر هاب

معمولا برنامه نویسان برای اجرای برنامه های خود نیاز به Stack خاصی دارند. برای مثال این استک می‌تواند LAMP (Linux,Apache,MySQL,PHP) باشه یا MEAN(Mongo,Express,Angular,Node) یا هر نوع استکی که برای راه اندازی پروژه نیاز است. شما می‌توانید با استفاده از Image های داکر سرویس هایی که نیاز دارید را توصیف و توسط کانتینرها راه اندازی کنید و این استک در هر نوع پلتفرم و سیستم عاملی قابلیت اجرا دارد. همچنین داکرهاب یک منبع رسمی برای دریافت Image های داکر است که کمک شایانی به افزایش سرعت توسعه و تحویل نرم‌افزار می‌کند.

داکر گو

داکر (Docker) توسط زبان برنامه نویسی GoLang توسعه یافته است.

سرفصل دوره آموزشی داکر برای همه

فصل ۱ – آشنایی با داکر

  • دنیای بدون داکر و رنج مدیران سیستم
  • رابطه داکر و DevOps
  • تاریخچه و تولد Docker
  • آشنایی با مجازی سازی
  • کانتینر و ماشین مجازی، دوست یا دشمن؟
  • چرا از داکر استفاده کنیم؟
  • تحویل و استقرار مداوم محصولات – CI/CD

فصل ۲ – نصب و راه اندازی داکر

  • سیستم مورد نیاز برای اجرای Docker
  • نصب داکر روی سیستم عامل CentOS 7
  • نصب داکر روی سیستم عامل Ubuntu 18.0.4
  • نصب داکر روی سیستم عامل MacOS
  • نصب داکر روی سیستم عامل Windows 10

فصل ۳ – آشنایی با معماری داکر

  • آشنایی با معماری و اجزای Docker
  • آشنایی با Image ها و Containerها در داکر
  • آشنایی با ابزارهای Docker
  • رفع تحریم داکر
  • آشنایی با Docker Hub
  • آشنایی با Namespace و Cgroups

فصل ۴ – مدیریت و چرخه حیات کانتینرها

  • چرخه حیات کانتینرها
  • راه اندازی یک کانتینر ساده
  • راه اندازی کانتینر Ubuntu
  • راه اندازی کانتینر در حالت detach
  • دسترسی به شل کانتینرهای در حال اجرا
  • آشنایی با دستورات docker create و docker start
  • تفاوت دستورات docker kill, stop, pause
  •  آشنایی با دستور docker restart
  • آشنایی با دستور docker inspect
  • آشنایی با دستور docker info
  • آشنایی با دستور docker logs
  • صحبتی در رابطه با طول عمر کانتینرها

فصل ۵ – معماری و کاربرد Image های داکر

  • فیلترکردن لیست ایمیج‌های هاست
  • آشنایی با Docker Registry ها
  • ساخت یک ایمیج ساده و Push به DockerHub
  • جست‌و‌جو در DockerHub در ترمینال
  • تشخیص ایمیج های Official و Unofficial
  • ساخت یک ایمیج ساده با استفاده از Dockerfile
  • نکاتی در رابطه با Image ها

فصل ۶ – آشنایی با Volume ها در داکر

  • معماری Volume ها در داکر
  • آشنایی با مفهوم Persistent Volume و Non-Persistent Volume
  • آشنایی با دستورات Create، Inspect، Rm و Prune در Volume داکر
  • راه اندازی Nginx با استفاده از Volume داکر

فصل ۷ – آشنایی با Network در داکر

  • معماری شبکه در داکر
  • آشنایی با Driver های داکر
  • آشنایی با دستورات Create، Inspect، Rm و Prune در Network داکر
  • ارتباط دو کانتینر به همدیگر با درایور Bridge داکر
  • آشنایی با Service Discovery در داکر

فصل ۸ – راه اندازی چند سناریو کاربردی در داکر

  • راه اندازی کانیتر وردپرس به همراه دیتابیس MariaDB در داکر
  • راه اندازی دیتابیس PostgresQL و PgAdmin برای مانیتور و مدیریت دیتابیس
  • راه اندازی دیتابیس Redis
  • راه اندازی دیتابیس MongoDB و محیط Mongo Express در داکر
  • راه اندازی Gitlab خصوصی

فصل ۹ – نکات تکمیلی داکر

  • آشنایی با Portainer برای مانیتورینگ و مدیریت داکر
  • آشنایی با Kitematic برای مانیتورینگ و مدیریت داکر
  • آشنایی با docker-compose و اجرای چندین کانتینر با یک دستور
  • جمع بندی نهایی

این دوره پیش‌تر توسط مجله آموزشی آرکادمی، راهنمای تخصصی برنامه‌نویسان در بازار کار و وب سایت فرانش نیز منتشر شده است.

اشتراک
Notify of
guest
oldest
newest most voted
Inline Feedbacks
View all comments
وحید صابری
وحید صابری
6 months ago

سلام من این آموزش رو تهیه کردم گفتم یک نظر هم اینجا ثبت کنم برای دوستانی که شک دارن توی خرید این آموزش
اول فکر میکردم یه آموزش معمولی هست ولی توضیحات در آموزش بسیار کامل و روان و عالی بود و فوق العاده بهره مند شدم و تونستم کارهامو با داکر انجام بدم
روانی کلام و توضیحات کامل در عین حال سریع
توضیح تئوری هر مبحث در ابتدای فصل و تفهیم موضوع و سپس به قول آقای بابازاده دست به آچار شدن 🙂
مثال های جامع و کامل

من دوره های زیادی از سایت های زیاد خریدم چون دوست دارم برای شروع هر زبان یا موضوعی حداقل یک کورس یا مقاله فارسی رو ببینم بعد برم سراغ منابع انگلیسی که پایه هر موضوع رو فارسی درک کرده باشم کورس داکر برای همه اینقدر کامل بود که نیازی به منابع خارجی پیدا نکردم و صرفا چند مشکل کوچیکم رو با سرچ گوگل حل کردم و کارهامو انجام دادم و فکر میکنم همون طور که در دوره گفته شده این دوره مقدماتی برای افرادی که برنامه نویس هستن و میخان خودشون کارهاشون رو بکنن بسیار مناسب و کافی هست
من با این آموزش روی سرور شخصیم یک دیتابیس و گیت لب رو نصب کردم و کاملا کارهامو انجام دادم
ممنون از آقای بابازاده

هادی خانی
هادی خانی
6 months ago

سلام
این آموزش رو با دوره توسعه سریع وب با جانگو و آموزش گیت لب دنبال کردم بعنوان نتیجه گیری می تونم به این موارد اشاره کنم:
۱- قدرت بیان و انتقال آقای بابا زاده فوق العاده بود.
۲- انصافا محتوای دوره عالی بود.
۳- پشتیبانی بسیار خوب بود.
۴- قیمت دوره خیلی مناسبه
در کل می تونم بگم در سطح دوره های udemy و… بود.

علی مجیدی
علی مجیدی
6 months ago

سلام و خسته نباشید بابت دوره جامع و کاملتون
در کوتاهترین زمان بیشترین انتقال مطلب انجام شد و قطعا در برابر تمام دوره هایی که قبلا دیدم خیلی حرف واسه گفتن داشت.جلسات بسیار کامل بودن یعنی تا یک مبحثی تموم نمیشد و هر کاری که میشد با اون دستور انجام داد رو توضیح نمیدادین وارد تدریس بعدی نمیشدین و این یکی از بهترین نکاتش بود فقط پیشنهادی که دارم اینه که از این هم بیشتر پروژه محور جلو برید که تفهیم مطالب بهتر بشه
ممنون

mohammad
mohammad
3 months ago

با سلام من یه کانتینر بالا اوردم، و مثلا با localhost:8080/docker/blah بهش دسترسی دارم. حالا میخوام از یک سرور که یک IP address مجزا داره به این کانتینر دسترسی داشته باشم. و نکته اینه که من فقط به دو تا پورته خاصه این سرور مثلا ۲۰۱۷۵ و ۱۹۰۸۰ از بیرون دسترسی دارم.
الان port forwarding به چه صورت میشه؟
ممنون