در حالی که تحریم docker hub مشکلاتی را برای سرورهای داخلی در استفاد از این سرویس ایجاد کرده، در کنار این تحریم ها محدودیت های شدید اینترنت در ایران امکان استفاده از proxy برای دور زدن این تحریم ها را عملا غیر ممکن کرده و مشکلات استفاده از docker را مضاعف کرده است.
بنابراین یکی از معدود راه های استفاده از docker hub تغییر dns می باشد. برای پروژه های کوچک و شخصی می توان برای دور زدن تحریم های داکر از روش تغییر dns استفاده کرد. برای پروژه های بزرگتر و شرکتی اما بهتر است یک رجیستری شخصی بسازیم که در مقاله بعدی به تفصیل به آن خواهیم پرداخت. در این آموزش ما از smart dns شرکت شکن استفاده می کنیم. برای تغییر dns های سرور ubuntu به dns های شکن، طبق راه حلی که در این لینک هست باید مطابق مراحل زیر عمل کنیم:
sudo apt update sudo apt install resolvconf
2. چک میکنیم که آیا سرویس resolveconf اجرا شده یا نه:
sudo systemctl status resolvconf.service
3. اگر اجرا نشده بود دستورات زیر را وارد می کنیم تا اجرا بشود:
sudo systemctl start resolvconf.service sudo systemctl enable resolvconf.service
4. حالا باید فایل /etc/resolvconf/resolv.conf.d/head
را ویرایش کنیم:
sudo nano /etc/resolvconf/resolv.conf.d/head
به این فایل 2 خط که dns های شکن هستند را اضافه می کنیم:
nameserver 178.22.122.100 nameserver 185.51.200.2
5. حالا باید به resolveconf گفته شود که این آپدیت را اجرا کن و سپس آپدیت کنیم:
sudo resolvconf --enable-updates sudo resolvconf -u
حالا اگر دستور زیر را بزنید باید dns هایی که وارد کردید را ببینید:
cat /etc/resolv.conf
اگر این کار با موفقیت انجام دهید می توانید بدون محدودیت به سرویس docker hub متصل شوید. یعنی اگه دستور زیر را زدید بدون خطا hello from docker را خواهید دید:
sudo docker run hello-world
موفق باشید.