مقدمه
استفاده از داکر به عنوان یک ابزار تست ، سرویس دهی و یا توسعه نرم افزار در بسیاری از شرکت ها رونق بسیاری یافته است. متاسفانه با توجه به اعمال تحریم های سخت registry مربوط به داکر ای پی کشور ایران را بلاک کرده است که همین امر استفاده از این سرویس را با مشکل مواجه کرده است. لذا برای استفاده راهکار هایی وجود دارد که به برسی ان میپردازیم.
در هنگام کار با داکر ممکن است پیغام های زیر را مشاهده کنید که مربوط به تحریم و یا مشکل در ارتباط شما با سرویس های Docker میباشد.
مشکل اول مربوط به شناسایی و انسداد دسترسی شما به registry داکر است:
مشکل بعدی مربوط به دریافت timeout در زمان اتصال به سرویس registry میباشد:
در هر صورت تصاویر بالا مربوط به عدم دسترسی و وجود مشکل در connectivity است.
روش های فعلی رفع تحریم Docker
راهکار های متفاوتی برای رفع مشکلات مربوط به تحریم این نرم افزار وجود دارد. ما ابتدا راهکار های موجود را برسی و بهترین راهکار را به شما اموزش خواهیم داد. برای رفع تحریم داکر 3 روش وجود دارد:
- استفاده از Smart DNS یا DNS Proxy
- استفاده از registry های غیر رسمی Docker
- تنظیم پروکسی بر روی داکر
استفاده از Smart DNS یا DNS Proxy
استفاده از این متد راهکار مناسبی برای رفع تحریم است اما باید توجه داشته باشید بروز اختلال در شبکه میتواند سرویس دهی شما را مختل نماید. برای استفاده از این روش به عنوان مثال میتوانید وارد وب سایت shecan.ir شده و از DNS Proxy های ارائه شده توسط این وب سایت استفاده نمایید. نحوه استفاده از DNS ها در وب سایت ذکر شده اموزش داده شده است.
استفاده از registry های غیر رسمی Docker
در برخی از اموزش های این راهکار به همراه registry های غیر رسمی داکر ارائه شده است که به دلیل عدم اعتماد به این مخزن ها استفاده از ان توصیه نمیشود.
تنظیم پروکسی بر روی داکر
با استفاده از این روش میتوانید بر روی داکر پروکسی تنظیم نمایید تا مشکل مربوط به تحریم مرتفع گردد. ابتدا میتوانید از لینک زیر لیست پروکسی های رایگان را مشاهده نمایید.
ابتدا در ادرس /etc/systemd/system/docker.service.d یک دایرکتوری ایجاد نمایید:
mkdir /etc/systemd/system/docker.service.d
در دایرکتوری ایجاد شده یک فایل با نام http-proxy.conf ایجاد نمایید:
vi /etc/systemd/system/docker.service.d/http-proxy.conf
سپس محتوای زیر را در ان وارد نمایید:
[Service] Environment="HTTPS_PROXY=IP:PORT"
برای نمونه میتوانید از فرم زیر استفاده کنید:
[Service] Environment="HTTPS_PROXY=118.175.176.118:51743"
پس از ذخیره فایل ایجاد شده daemon مربوط به systemctl را ریست کنید:
systemctl daemon-reload
با استفاده از کد زیر میتوانید خروجی و اعمال تغییرات را مشاهده نمایید:
systemctl show --property Environment docker
خروجی (با توجه به اطلاعات وارد شده توسط شما ممکن است متفاوت باشد):
Environment="HTTPS_PROXY=118.175.176.118:51743"
پس از انجام موارد ذکر شده سرویس داکر را ریست نمایید تا تغییرات اعمال شود:
systemctl restart docker
نکته: حتما از سرویس پروکسی https استفاده نمایید.