داکر ابزاری است که برای سهولت در ایجاد، استقرار و اجرای برنامهها با استفاده از کانتینرها طراحی شده است. در واقع Docker یک بستر باز برای توسعه و اجرای برنامهها است.
کانتینرها به یک توسعهدهنده این امکان را میدهند تا برنامهای را با تمام قسمتهای مورد نیاز مانند کتابخانهها و سایر وابستگیها بستهبندی کند و آن را به عنوان یک بسته مستقر کند. با این کار، به لطف container، توسعه دهنده میتواند مطمئن باشد كه برنامه بدون در نظر گرفتن هرگونه تنظیمات سفارشی كه ممکن است با دستگاه مورد استفاده از نظر کدنویسی متفاوت باشد، روی هر دستگاه لینوكس دیگری اجرا خواهد شد.
به نوعی داکر کمی شبیه ماشین مجازی است. اما برخلاف یک ماشین مجازی، به جای ایجاد یک سیستم عامل کاملاً مجازی، Docker این امکان را برای برنامهها فراهم میکند از هسته لینوکس سیستمی که در آن در حال اجرا هستند استفاده کنند و فقط برنامهها باید مواردی که در رایانه میزبان اجرا نمیشوند، ارسال شوند.
این امر باعث افزایش چشمگیر عملکرد میشود و از سایز برنامه میکاهد. و مهمتر اینکه، داکر منبع باز است. این بدان معنی است که هر کس میتواند ویژگیهایی را که نیاز دارد براحتی به آن اضافه کند.
داکر برای چه کسانی است؟
Docker ابزاری است که برای استفده توسعهدهندگان و مدیران سیستم طراحی شده است و آن را بخشی از ابزارهای DevOps (توسعهدهندگان + عملیات) میکند. برای توسعهدهندگان، این بدان معنی است که آنها میتوانند بدون نگرانی در مورد سیستمی که کد قرار است بر روی آن اجرا شود، روی نوشتن کد تمرکز کنند.
همچنین به آنها اجازه میدهد از یکی از هزاران برنامهای که قبلاً برای اجرای در محفظه Docker به عنوان بخشی از برنامه آن طراحی شدهاند، استفاده کنند.
شروع به کار
در اینجا برخی منابع وجود دارد که به شما کمک می کند تا از Docker استفاده کنید. Docker یک آموزش مبتنی بر وب را با یک شبیهساز خط فرمان فراهم میکند که میتوانید دستورات اساسی Docker را با آن امتحان کنید تا نحوه کار ان را کاملا درک کنید.
همچنین یک راهنمای مبتدی برای Docker وجود دارد که برخی از دستورات اساسی و اصطلاحات کانتینر را به شما معرفی میکند.
داکر و امنیت
Docker امنیت برنامه های در حال اجرا را در یک محیط مشترک به ارمغان میآورد، اما کانتینرها به خودی خود گزینهای برای انجام اقدامات امنیتی مناسب نیستند. دن والش، رهبر امنیت رایانه که به خاطر کار در SELinux مشهور است، دیدگاه خود را درباره اهمیت اطمینان از ایمنی Docker containers بیان میکند. وی همچنین به تفکیک جزئیات ویژگیهای امنیتی موجود در داکر و نحوه عملکرد آنها میپردازد.
موتور داکر
Docker Engine یک برنامه سرور سرویس گیرنده با این مولفههای اصلی است:
- سروری که نوعی برنامه طولانی مدت به نام فرآیند Daemon است (دستور dockerd).
- REST API که رابطهایی را مشخص میکند که برنامهها میتوانند از آنها برای مکالمه با daemon استفاده کنند و به آنها دستور دهند چه کاری انجام دهد.
- یک رابط خط فرمان (CLI) مشتری (دستور docker).
CLI از Docker REST API برای کنترل یا تعامل با Docker daemon از طریق دستورالعملهای نوشتاری یا دستورات CLI مستقیم استفاده میکند. بسیاری از برنامههای Docker دیگر از API و CLI اساسی استفاده میکنند.
درک کانتینرها
میتوان کانتینرها را به عنوان سه دسته نرمافزار ضروری دانست:
- Builder: فناوری مورد استفاده برای ساخت کانتینر.
- Engine: فناوری مورد استفاده برای راه اندازی کانتینر.
- Orchestration: فناوری مورد استفاده برای مدیریت بسیاری از کانتینرها.
یکی از جذابیتهای استفاده از کانتینرها توانایی آنها برای از بین رفتن و ایجاد آنها در صورت احتیاج و تقاضا است. این که آیا از بین رفتن یک کانتینر ناشی از خرابی است یا به این دلیل که وقتی ترافیک سرور کم است دیگر به آن نیازی نیست، شروع به کار با کانتینرها ارزان است و به گونهای طراحی شدهاند که به طور یکپارچه و راحت ایجاد شوند و یا از بین بروند. از آنجا که کانتینرها قرار است زودگذر باشند و موارد جدید را هر چند بار که لازم است تولید کنند، انتظار میرود که نظارت و مدیریت آنها توسط انسان real-time انجام نشود، بلکه در عوض خودکار باشد.
کانتینرهای لینوکس تغییرات گستردهای را در محاسبات با قابلیت دسترسی بالا تسهیل کردهاند، و ابزارهای زیادی برای کمک به شما در اجرای سرویسها (یا حتی کل سیستم عامل) در کانتینرها وجود دارد. Docker یک گزینه در میان گزینههای زیادی است که پیش روی شما قرار دارد، همانطور که توسط Open Container Initiation OCI تعریف شده است، یک استاندارد صنعت برای تشویق و پرورش نوآوری است.
اگر تصمیم دارید سرویسهایی را در کانتینرها اجرا کنید، پس احتمالاً به نرم افزاری برای میزبانی و مدیریت آن کانتینرها نیاز دارید. این موضوع به طور گسترده به عنوان ارکستراسیون کانتینر شناخته میشود. Kubernetes ارکستراسیون کانتینر را برای انواع مورد استفاده از کانتینر فراهم میکند.