داستان اینه که داکر هاب که رجیستری پیش فرض داکر هست ایران رو تحریم کرده و برای استفاده و دانلود (pull کردن) بخش زیادی از ایمیج هاش با مشکل برخواهیم خورد
تو این مقاله چند روش برای دور زدن تحریم داکر بهتون آموزش میدم
داستان اینه که داکر هاب که رجیستری پیش فرض داکر هست ایران رو تحریم کرده و برای استفاده و دانلود (pull کردن) بخش زیادی از ایمیج هاش با مشکل برخواهیم خورد
تو این مقاله چند روش برای دور زدن تحریم داکر بهتون آموزش میدم
استفاده از شکن بسیار آسان
است. کافی است DNS خود را روی شکن تنظیم کنید. برای گوشیهای اندروید، این
کار را با استفاده از نرمافزار شکن هم میتوانید انجام دهید.
تو این روش با تهیه یک پراکسی و ست کردن اون روی تنظیمات داکرتون میتونید ترافیک داکر رو پراکسی کنید
برای اینکار من یک VPS تهیه کردم و میخوام COW Proxy رو روی داکر بیارم بالا لازم به ذکره که آموزش COW PROXY رو توی سایت بلاگ انگلیسی Packops.dev مدت ها پیش منتشر کرده بودم
در واقع کار یکه تو این قسمت میخواهیم انجام بدیم اینه که با استفاده از یک ایمیج Alpine که حجم کمی رو هم داره اسکریپت Cow Proxy رو دانلود و خط به خط اجرا میکنیم و درنهایت رو پورت 7777 Expose میکنیم
FROM alpine
RUN apk update && apk add curl && apk add bash
#installing Cow Proxy
RUN curl -s -L git.io/cow | bash
EXPOSE 7777/tcp
ENTRYPOINT ["/cow"]
تو فایل داکر کامپیوزی که مینوسیم کلمه build رو استفاده میکنیم به این معنا که باید از DOCKERFILE ایمیج رو بلید کنی و اسم cow-proxy:1 رو به ایمیج میدیم روی پورت 8585 لیستن خواهد بود
و config-file رو به root/.cow/rc میچسبونیم که مسیر کانفیگ Cow proxy
(ممکنه موقع کپی کردن مقادیر به هم ریخته باشه دقت کنید مقادیر جابه جا نشده باشند )
version: "3"
:services
:cowproxy
. :build
image: cow-proxy:1
ports:
"8585:7777" -
volumes:
"config-file:/root/.cow/rc/." -
restart: always
فایلی تحت عنوان config-file درست میکنیم که مشخصات یوزر پسورد و همینطور پورتی که باید لستن باشه + مسیر لاگ فایلشو مشخص میکنیم
listen = http://0.0.0.0:7777
logFile = /dev/stderr
userPasswd = user:pass
و در نهایت با دستور docker-compose up -d پروژه رو بالا میاریم
برای ست کردن پراکسی روی داکر نیاز داریم که یک مسیر کانفیگ (Override میشه به کانفیگ اصلی) جدید برای سرویس داکر درست کنیم و درنهایت یک بار systemd و داکر و reload کنیم
sudo mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/proxy.conf
[Service]
"Environment="HTTP_PROXY=http://user:password@myproxy.hostname:8585
"Environment="HTTPS_PROXY=http://user:password@myproxy.hostname:8585
"Environment="NO_PROXY=localhost,127.0.0.1,::1
for ((i=1;i<=10;i++)); do curl -I https://cloud.google.com/ --proxy http://user:password@YOUR_PROXY_IP:8585 -vv; done
شما با curl –proxy به راحتی میتونید مقصدی رو curl کنید با مشخصات پراکسیتون (IP+port+user and password)
تو این مثال 10 تا ریکوست ارسال میشه که حتما باید Response Code 200 دریافت کنید