داکر شیوه ساخت، بسته بندی و استقرار برنامه های کاربردی را متحول کرده است. فناوری کانتینر سبک وزن آن به بخشی جدایی ناپذیر از خطوط لوله توسعه و استقرار نرم افزار مدرن تبدیل شده است. با این حال، مانند هر ابزار قدرتمند و گسترده، Docker نیز مجموعه ای از چالش های امنیتی خاص خود را دارد. اطمینان از امنیت کانتینرهای Docker فقط یک موضوع تقویت برنامه نیست، بلکه شامل یک رویکرد جامع است که کل اکوسیستم را در بر می گیرد.
این مقاله به بررسی بهترین روشها برای امنیت Docker میپردازد و راهنمایی برای محافظت از محیطهای کانتینری شما ارائه میدهد. هدف ما ارائه راهنمای دقیقی برای شماست تا نه تنها مشکلات امنیتی بالقوه در Docker را درک کنید، بلکه شما را با دانش و ابزارهایی برای مقابله موثر با آنها تجهیز کنیم.
با اجرای این بهترین شیوهها، اطمینان حاصل میکنید که استقرارهای Docker شما قوی، انعطافپذیر و آماده مقابله با چالشهای ایمن سازی برنامههای کاربردی مدرن هستند.
آشنایی با مدل امنیتی داکر
قبل از اینکه بتوانید به طور موثر برنامه های کاربردی کانتینری خود را ایمن کنید، باید درک خوبی از مدل امنیتی Docker داشته باشید. رویکرد Docker به امنیت از روشهای مجازیسازی سنتی متمایز است، در درجه اول به دلیل اتکای آن به هسته سیستمعامل میزبان.
در اینجا مروری بر عناصر کلیدی مدل امنیتی آن است:
فضاهای نام هسته: داکر از Namespaces هسته برای جداسازی فرآیندها استفاده می کند. این بدان معنی است که هر کانتینر در Namespaces خود عمل می کند و فرآیندها و منابع سیستم خود را (مانند رابط های شبکه و نقاط اتصال) از سایر کانتینرها و میزبان جدا می کند.گروه های کنترل (Cgroups): Cgroup ها نقش مهمی در مدیریت و محدود کردن استفاده از منابع کانتینر دارند. آنها با تخصیص منصفانه منابع در بین کانتینرها، به جلوگیری از حملات انکار سرویس کمک می کنند و تضمین می کنند که استفاده بیش از حد از منابع توسط یک کانتینر بر دیگران تأثیر نمی گذارد.
امنیت Docker Daemon : Daemon Docker به طور پیشفرض به امتیازات روت نیاز دارد، بنابراین محدود کردن دسترسی به کاربران قابل اعتماد ضروری است. نقطه پایانی REST API Docker که برای ارتباطات استفاده میشود، برای افزایش امنیت، با استفاده از سوکت یونیکس یا HTTPS با امنیت مبتنی بر گواهی تکامل یافته است.
قابلیتهای کرنل لینوکس: داکر قابلیتهای کانتینرها را محدود میکند، به این معنی که حتی دسترسی در سطح ریشه در یک کانتینر از امتیاز کمتری نسبت به سیستم میزبان برخوردار است. این سیستم قابلیت، امتیازات خاصی را بدون دسترسی کامل به ریشه اجازه میدهد و در صورت دستیابی مهاجم به root در یک کانتینر، خطر آسیب قابل توجهی را کاهش میدهد.
Docker Content Trust Signature Verification: در Docker Engine را می توان طوری پیکربندی کرد که فقط ایمیج های امضا شده را اجرا کند و امنیت را از طریق تأیید امضای ایمیج افزایش دهد. این ویژگی که در فایل پیکربندی Docker (
daemon.json
) تنظیم شده است، به شما امکان کنترل اعمال سیاست های امنیتی مربوط به استفاده از ایمیج را می دهد.فضاهای نام کاربری: ویژگی فضای نام کاربری Docker، کاربر ریشه کانتینر را به یک کاربر غیر ریشه در میزبان نگاشت می کند و خطر شکست کانتینر را کاهش می دهد. اگرچه این ویژگی به طور پیشفرض فعال نیست، اما برای محفظههایی که به امتیازات روت نیاز دارند، مفید است و یک لایه امنیتی اضافی ارائه میدهد.
بهترین شیوه های امنیت داکر: تأثیر در مقابل دشواری
اکنون که درک اساسی از مدل امنیتی Docker دارید، بیایید برخی از بهترین روشها را برای تقویت محیط Docker خود بررسی کنیم.
جدول زیر یک تحلیل مقایسه ای از تاثیر و دشواری پیاده سازی برای هر عمل ارائه می دهد. در ادامه جدول، در مورد هر تمرین توضیح خواهیم داد و راهنمایی برای ادغام آنها در راه اندازی Docker شما ارائه خواهیم کرد.
شیوه ها | تأثیر | دشواری |
1. از ایمیج های رسمی استفاده کنید | ⭐⭐⭐⭐ | ⭐⭐ |
2. پین کردن نسخه های ایمیج داکر | ⭐⭐⭐ | ⭐⭐ |
3. Docker و میزبان آن را به روز نگه دارید | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
4. اندازه و لایه های ایمیج را به حداقل برسانید | ⭐⭐⭐ | ⭐⭐ |
5. کانتینرهایی را با کمترین امتیازات اجرا کنید | ⭐⭐⭐⭐ | ⭐⭐⭐ |
6. اجرای بخش بندی شبکه | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
7. داده های حساس را ایمن نگه دارید | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
8. Dockerfiles خود را در زمان ساخت پر کنید | ⭐⭐⭐⭐ | ⭐⭐ |
9. سوکت دایمون داکر را افشا نکنید | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
10. استفاده از منابع کانتینر را محدود کنید | ⭐⭐ | ⭐⭐ |
11. Docker را در حالت بدون ریشه اجرا کنید | ⭐⭐⭐ | ⭐⭐⭐⭐ |
12. اسکن ایمیج های برای آسیب پذیری ها | ⭐⭐⭐⭐ | ⭐⭐ |
13. تأیید صحت ایمیج با Docker Content Trust | ⭐⭐⭐ | ⭐⭐⭐ |
14. گزارش های Docker را جمع آوری و نظارت کنید | ⭐⭐⭐⭐ | ⭐⭐⭐ |
1. از ایمیج های رسمی استفاده کنید
استفاده از ایمیج های رسمی Docker برای حفظ امنیت بسیار مهم است، زیرا این ایمیج های به طور مرتب توسط نهادهای معتبر به روز می شوند و وصله می شوند. این رویکرد به طور قابل توجهی خطر استقرار کانتینرهایی با آسیب پذیری های موجود یا کد مخرب را کاهش می دهد.
استفاده از ایمیج های رسمی چندین مزیت کلیدی به همراه دارد. آنها به طور منظم برای امنیت به روز می شوند، از منابع تأیید شده سرچشمه می گیرند و به طور گسترده در جامعه Docker مورد اعتماد هستند. استفاده گسترده از آنها و جامعه بزرگی که به طور فعال آنها را بررسی می کند به کشف سریع و اصلاح هر گونه مشکل امنیتی بالقوه کمک می کند.
اجرای این عمل ساده است، زیرا عمدتاً شامل انتخاب ایمیج های رسمی از Docker Hub یا سایر منابع قابل اعتماد برای ساخت کانتینر شما می شود.
2. نسخه های ایمیج داکر را پین کنید
برای کاهش خطرات در کانتینرهای Docker، مهم است که از نسخه های ایمیجی خاص به جای آخرین برچسب استفاده کنید. نسخه های نامشخص می توانند منجر به استقرار ناخواسته کانتینرهایی با آسیب پذیری های شناخته شده شوند.
پین کردن نسخههای خاص امکان ساختهای قابل پیشبینی، بهروزرسانیهای کنترلشده و ارزیابی دقیقتر وصلههای امنیتی را فراهم میکند. به عنوان مثال، در Dockerfile خود یا هنگام اجرای کانتینرها، به صراحت نسخه را مشخص کنید:
FROM nginx:1.21.3
یا هنگام اجرای کانتینر:
docker run -d --name my-container nginx:1.21.3
این رویکرد استفاده از ایمیج Nginx 1.21.3
را بر خلاف آخرین برچسب، که ممکن است همیشه جدیدترین نسخه نباشد و به غیرقابل پیش بینی بودن منجر شود، تضمین می کند.
به روز رسانی منظم نسخه های پین شده نیازمند یک رویکرد سیستماتیک است، از جمله آزمایش نسخه های جدید برای سازگاری و امنیت. ابزارهایی مانند Diun برای اطلاع رسانی بهروزرسانیهای ایمیج پایه و Watchtower برای بهروزرسانی خودکار کانتینر میتوانند این فرآیند را سادهتر کنند.
3. Docker و میزبان آن را به روز نگه دارید
به روز رسانی منظم Docker و اجزای آن برای حفظ امنیت ضروری است. این بهروزرسانیها آسیبپذیریهای Docker را برطرف میکنند، وصلههای امنیتی ضروری و رفع اشکالها را برای محافظت از برنامههای کانتینری در برابر تهدیدات شناخته شده ارائه میکنند.
از آنجایی که کانتینرها هسته را با میزبان به اشتراک می گذارند (برخلاف ماشین های مجازی)، به روز رسانی سیستم میزبان نیز برای محافظت در برابر سوء استفاده های سطح هسته که می تواند میزبان را هنگام اجرا در داخل یک کانتینر به خطر بیندازد، مهم است.
4. اندازه و لایه های ایمیج را به حداقل برسانید
ایمیج های کوچکتر Docker به معنای سطح حمله کوچکتر است که بهره برداری از آسیب پذیری بالقوه را کاهش می دهد. آنها همچنین امکان اسکن امنیتی سریعتر، سرعت بخشیدن به تشخیص آسیب پذیری و اصلاح را فراهم می کنند. علاوه بر این، این ایمیج های به طور موثرتری از منابع استفاده می کنند و به محافظت در برابر حملات فرسودگی منابع کمک می کنند.
نکاتی برای اندازه ایمیج و کاهش لایه
یک ایمیج پایه حداقل را انتخاب کنید: کوچکترین ایمیج پایه ممکن را انتخاب کنید، مانند لینوکس آلپاین برای جمع و جور و امنیت.
اجرای ساختهای چند مرحلهای: ساختهای چند مرحلهای محیطهای ساخت و زمان اجرا را از هم جدا میکنند و با حذف فایلهای غیر ضروری، ایمیج های نهایی کوچکتری تولید میکنند.
از
dockerignore.
استفاده کنید: از dockerignore. برای حذف فایلهای غیر ضروری از زمینه ساخت Docker استفاده کنید و اندازه ایمیج را بیشتر کاهش دهید.
این Dockerfile
را برای یک برنامه Go در نظر بگیرید:
# Builder stage: building the executable
FROM golang:1.20.8-alpine as builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp
# Final stage: build the container to run
FROM scratch as final
COPY --from=builder /app/myapp /
این تنظیم شامل دو مرحله است:
مرحله سازنده: برنامه Go را با استفاده از یک ایمیج رسمی Go مبتنی بر آلپاین در یک باینری پیوندی استاتیک کامپایل می کند.
مرحله نهایی: Scratch یک ایمیج خالی است، بنابراین میتوان از آن برای باینریهای پیوندی استاتیکی که به libc نیاز ندارند استفاده کرد.
این روش منجر به یک ایمیج نهایی فشرده و ایمن با تنها باینری لازم می شود که بهترین شیوه های Docker برای امنیت و کارایی را در بر می گیرد.
5. کانتینرها را با کمترین امتیازات اجرا کنید
کارکردن کانتینرهای Docker در حالت ممتاز خطرات امنیتی قابل توجهی را به دلیل دسترسی تقریباً نامحدودی که آنها به سیستم میزبان به دست می آورند، ایجاد می کند. این دسترسی احتمال افزایش امتیازات را افزایش می دهد، سطح حمله را بزرگ می کند و خطراتی را برای یکپارچگی داده ها ایجاد می کند.
در حالی که حالت ممتاز برای سناریوهایی مانند سازگاری برنامه های قدیمی، رابط سخت افزاری یا عملیات هسته مفید است، پیامدهای امنیتی مهم آن نشان می دهد که باید فقط در مواقع ضروری استفاده شود.
علاوه بر اجتناب از حالت ممتاز، اقدامات زیر را برای تقویت امنیت کانتینرهای Docker خود اجرا کنید.
تنظیم فایل سیستم و حجم ها روی فقط خواندنی: برای جلوگیری از تغییرات زمان اجرا، سیستم فایل کانتینر خود را روی فقط خواندنی تنظیم کنید. از پرچم --tmpfs برای دسترسی انتخابی نوشتن در مناطقی که به آن نیاز دارند استفاده کنید و امنیت را با نیازهای عملکردی متعادل کنید.
docker run --read-only --tmpfs /tmp ubuntu sh -c 'echo "whatever" > /tmp/file'
همچنین میتوانید با اضافه کردن :ro به -v، حجمها را بهصورت فقط خواندنی نصب کنید:
docker run -v volume-name:/path/in/container:ro ubuntu
جلوگیری از افزایش امتیاز: شامل اقداماتی برای جلوگیری از افزایش امتیاز در داخل کانتینر است. به عنوان مثال، میتوانید از --security-opt=no-new-privileges برای جلوگیری از استفاده از setuid یا setgid برای افزایش امتیازات استفاده کنید.
محدود کردن قابلیتهای لینوکس: میتوانید قابلیتهای لینوکس اختصاص داده شده به کاربر ریشه در کانتینر Docker را با حذف تمام امتیازات با --cap-drop=all و تنها افزودن صریح قابلیتهای مورد نیاز با استفاده از --cap-add به حداقل برسانید. برای جزئیات بیشتر به این مقاله مراجعه کنید.
6. تقسیم بندی شبکه را اجرا کنید
در Docker، تنظیمات شبکه پیشفرض اجازه ارتباط نامحدود بین کانتینرها را میدهد (با استفاده از شبکه پل پیشفرض). اجرای بخش بندی شبکه برای کاهش این خطرات و کنترل جریان ارتباطی در زیرساخت کانتینری شما ضروری است.
تقسیم بندی شبکه ایزوله کردن ارتباطات کانتینری، کاهش بردارهای حمله، محافظت از بارهای کاری حساس و اعمال کنترل های دسترسی برای خنثی کردن تعاملات غیرمجاز را تضمین می کند. حتی اگر یک کانتینر به خطر بیفتد، فعالیت های مهاجم به آن محدود می شود و در نتیجه از سیستم بزرگتر محافظت می شود.
برای پیادهسازی مؤثر تقسیمبندی شبکه در Docker، این روشها را دنبال کنید:
از شبکه های پل سفارشی برای جداسازی و اعمال سیاست های شبکه در کانتینرهای خاص استفاده کنید.
هر کانتینر را به شبکه مورد نظر متصل کنید تا مسیرهای ارتباطی آنها را کنترل کنید.
docker run --network mynetwork mycontainer
از تکنیک های جداسازی شبکه مانند پیکربندی قوانین iptables برای محدود کردن تعاملات کانتینر و محافظت از آنها در برابر دسترسی های خارجی غیرمجاز استفاده کنید.
برای ویژگیهای پیشرفتهتر، راهحلهای شخص ثالث مانند Calico را در نظر بگیرید، که امنیت شبکه و قابلیتهای مدیریت جامع را ارائه میکند، به ویژه در تنظیمات پیچیده Docker مفید است.
از طریق این استراتژیها، تقسیمبندی شبکه در Docker به ابزاری قدرتمند برای ارتقای وضعیت امنیتی کلی سیستمهای کانتینری شما تبدیل میشود.
7. داده های حساس را ایمن نگه دارید
Docker یک سیستم مدیریت اسرار را در حالت Swarm ارائه می دهد که ذخیره ایمن و مدیریت داده های حساس را امکان پذیر می کند. با این حال، این ویژگی منحصر به خدمات ازدحام است و برای کانتینرهای مستقل قابل اجرا نیست.
هنگامی که از Docker Swarm استفاده نمی کنید، در اینجا روش های جایگزین برای مدیریت داده های حساس در محیط کانتینری شما وجود دارد:
متغیرهای محیط: برای کاربران Docker Compose، دادههای حساس را میتوان در فایلهای محیط ذخیره کرد و هنگام اجرای سرویسها بارگیری کرد. مطمئن شوید که این فایلها از زمینه ساخت شما با dockerigonre.
حذف شدهاند.
ابزارهای مدیریت اسرار خارجی: ابزارهایی مانند HashiCorp Vault یا AWS Secrets Manager ویژگی های پیشرفته ای را برای ذخیره و بازیابی اسرار ارائه می دهند که می توانند با کانتینر Docker ادغام شوند.
سیستمهای مدیریت پیکربندی: با استفاده از سیستمهایی مانند Ansible، Puppet یا Chef، دادههای حساس را میتوان در فایلهای پیکربندی رمزگذاریشده مدیریت کرد، سپس روی کانتینرها مستقر و مدیریت کرد. برای اطمینان از امنیت اعتبارنامه ها، از ابزارهایی مانند Deepfence SecretScanner می توان برای شناسایی اسرار محافظت نشده در ایمیج های استفاده کرد.
8. لینت کردن Dockerfiles خود در زمان ساخت
رعایت بهترین شیوه ها در حین ایجاد Dockerfile می تواند از بسیاری از مشکلات جلوگیری کند. ادغام یک لاینتر امنیتی در خط لوله ساخت یک گام بسیار موثر در جلوگیری از عوارض احتمالی در خط است.
هنگامی که چنین لینتری هادولینت است. این می تواند Dockerfiles محلی شما را اسکن کرده و در خط لوله CI شما ادغام کند تا از بررسی های ثابت در زمان ساخت اطمینان حاصل شود.
docker run --rm -i hadolint/hadolint < Dockerfile
9. سوکت Daemon Docker را در معرض دید قرار ندهید
ایمن کردن سوکت دیمون داکر برای ایمنی محیط داکر شما ضروری است. شبح داکر معمولاً از طریق یک سوکت یونیکس غیر شبکه ای ارتباط برقرار می کند، اما می تواند از سوکت SSH یا TLS (HTTPS) نیز استفاده کند که امنیت بیشتری را ارائه می دهد.
قرار دادن سوکت دایمون در معرض کانتینرهای در حال اجرا به شما این امکان را می دهد که API Docker را از کانتینر خود فراخوانی کنید تا ایمیج های/کانتینرها را شروع/توقف/ساخت ایمیج های/کانتینرها کنید، گویی این دستورات را در هاست فراخوانی می کند.
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock docker sh
با این حال، خطرات امنیتی قابل توجهی را معرفی می کند و به دروازه ای بالقوه برای مهاجمان برای دسترسی و کنترل هاست Docker شما تبدیل می شود. این می تواند منجر به اجرای غیرمجاز دستور، به خطر انداختن داده های حساس مانند اسرار Docker و کلیدهای API شود.
در تنظیمات تولید، باید از سوکت دایمون Docker محافظت کنید و کانتینرهای شما از طریق SSH یا HTTPS با آن ارتباط برقرار کنند.
برای آشنایی با نحوه استفاده از داکر در لاراول این مقاله را بررسی کنید.
10. استفاده از منابع کانتینر را محدود کنید
محدود کردن استفاده از منابع کانتینر یک روش کلیدی برای جلوگیری از فرسودگی منابع، حملات انکار سرویس (DoS) و حفظ توزیع عادلانه منابع در سراسر کانتینرها است.
با استفاده از روشهای مختلف بسته به راهاندازی و ابزار، میتوانید حافظه، CPU، حداکثر تعداد راهاندازی مجدد، حداکثر تعداد توصیفگر فایل و حداکثر تعداد پردازشها را محدود کنید.
هنگام اجرای کانتینرها با استفاده از دستور docker run، چندین پرچم برای ایجاد محدودیتهای منبع درست در هنگام راهاندازی کانتینر موجود است.
به طور مشابه، هنگام استفاده از Docker Compose، محدودیتهای منابع را میتوان مستقیماً در فایل docker-compose.yml
تعریف کرد، و سازماندهندگان کانتینری مانند Kubernetes نیز به شما اجازه میدهند محدودیتهای منابع را در پیکربندیهای استقرار خود مشخص کنید.
11. Docker را در حالت بدون ریشه اجرا کنید
حالت بدون ریشه Docker یک بهبود امنیتی قابل توجه است که از وضعیت آزمایشی در Docker Engine نسخه 20.10 فارغ شده است.
با اطمینان از اینکه دایمون و کانتینرها به عنوان یک کاربر غیرمجاز در حال اجرا هستند، به طور قابل توجهی سطح حمله احتمالی را کاهش می دهد. این بدان معنی است که حتی اگر یک مهاجم امنیت کانتینر را نقض کند، دسترسی ریشه به سیستم میزبان نخواهد داشت.
به خاطر داشته باشید که استفاده از حالت بدون ریشه با محدودیت هایی همراه است. میتوانید درباره آنها بیشتر بخوانید و دستورالعملهای نصب و استفاده را در صفحه مستندات Docker بیابید.
12. ایمیج های را برای آسیب پذیری اسکن کنید
اسکن ایمیج های Docker با استفاده از ابزارهای تجزیه و تحلیل استاتیک برای شناسایی کانتینرهایی با آسیب پذیری های شناخته شده مفید است. پس از یافتن مشکلات، میتوان با بهروزرسانی وابستگیها، اعمال وصلهها یا تغییر به ایمیج های پایه امنتر، آنها را برطرف کرد.
13. از Docker Content Trust برای تأیید صحت ایمیج استفاده کنید
Docker Content Trust (DCT) یک ویژگی امنیتی در Docker است که صحت و یکپارچگی ایمیج های کانتینر را با استفاده از امضای دیجیتال تضمین می کند. این امضاها را با برچسبهای ایمیج مرتبط میکند و به کاربران امکان میدهد هم صحت و هم ناشر ایمیج های را از ثبتهای Docker تأیید کنند.
برخی از جنبه های کلیدی DCT عبارتند از:
امضاهای برچسب ایمیج: DCT بر روی بخش "TAG" یک شناسه ایمیج تمرکز می کند و ناشران از کلیدهایی برای امضای برچسب های ایمیج خاص استفاده می کنند. یک مخزن می تواند ترکیبی از برچسب های امضا شده و بدون امضا داشته باشد که انعطاف پذیری را برای ناشران ارائه می دهد.
استفاده از مصرف کننده: برای مصرف کنندگان، فعال کردن DCT به این معنی است که دستورات docker CLI که بر روی ایمیج های برچسب گذاری شده (مانند ساخت، ایجاد، کشیدن یا اجرا) عمل می کنند، به امضای محتوا یا هش محتوای صریح نیاز دارند.
مدیریت کلید: مدیریت کلیدهای اعتماد شامل ایمن کردن کلید ریشه آفلاین، استفاده از کلیدهای مخزن برای امضای برچسب و کلیدهای مدیریت شده توسط سرور برای امنیت بیشتر است.
تأیید اعتماد: کاربران میتوانند دادههای اعتماد را با بازرسی اعتماد docker بررسی کنند تا جزئیات امضای برچسبها یا مخازن را ببینند.
به طور خلاصه، DCT نه تنها انتقال و استفاده از ایمیج های Docker را ایمن می کند، بلکه به جلوگیری از استقرار ایمیج های دستکاری شده یا مخرب کمک می کند و به طور قابل توجهی وضعیت امنیتی کلی را تقویت می کند.
14. گزارش های Docker را جمع آوری و نظارت کنید
جمع آوری لاگ های شبح داکر در شناسایی و پاسخگویی به حوادث امنیتی بسیار مفید است. این گزارشها بینشهای جامعی را در مورد عملیات سطح سیستم Docker ارائه میدهند که شامل جنبههای حیاتی مانند رویدادهای چرخه حیات کانتینر، پیکربندیهای شبکه، مدیریت ایمیج و درخواستهای API ورودی میشود.
نظارت بر این گزارشها به شناسایی فعالیتها یا تغییرات غیرعادی در کانتینرها و شبکهها کمک میکند، که میتواند نشاندهنده دسترسی غیرمجاز یا نقض احتمالی امنیتی باشد.
نتیجه
در این راهنما، چندین روش ضروری Docker را پوشش دادیم تا به شما در ایمن سازی محیط کانتینری خود کمک کنیم. این شیوه ها نه تنها امنیت را بهبود می بخشد، بلکه کارایی و قابلیت اطمینان راه حل های مبتنی بر داکر را نیز بهبود می بخشد.
به یاد داشته باشید، اجرای این شیوه ها تنها آغاز سفر امنیتی شماست. به روز رسانی مداوم دانش امنیتی خود، هوشیار ماندن در برابر آسیب پذیری های جدید، و اولویت دادن به امنیت در فرآیند توسعه، گام های مهمی برای حفظ حفاظت قوی هستند.
برای کاوش بیشتر، به اسناد رسمی امنیتی Docker، این لیست از منابع امنیتی Docker و سایر راهنمای Docker ما مراجعه کنید.