В последнее время образ Docker не удается снести. Такое ощущение, что напрямую подключиться к Docker Hub, кроме зависания, практически невозможно. Что еще хуже, многие отечественные зеркальные сайты, которые изначально были надежными, например, принадлежащие некоторым крупным производителям и университетам, также были закрыты один за другим. Это очень неудобно для нас, отдельных разработчиков, а также малых и средних предприятий. Раньше мы могли быстро и легко получить необходимые образы Docker через эти зеркальные станции, но теперь этот метод больше невозможен. Похоже, что этот шаг немалый. В будущем прямой доступ к Docker Hub будет невозможен. Поэтому нам нужно найти способ построить собственный зеркальный склад.
В последнее время в Интернете появилось много статей о решении проблемы невозможности снести образ Docker Hub. Могу резюмировать следующие способы:
Используйте Github Action Job, чтобы повторно пометить образ Docker Hub и отправить его в другие общедоступные облачные хранилища образов, такие как Alibaba Cloud. Это очень удобно, когда вам нужен один образ, но в пакетном режиме это немного сложнее. если у вас нет доступа к Github.
Используйте CloudFlare Worker для ретрансляции запросов на доступ к Docker Hub. Это также используется в последнее время, поскольку бесплатный план для отдельных пользователей имеет 100 000 бесплатных запросов в день, чего достаточно для частных лиц и малых и средних предприятий. Вы можете купить его за 5$. В Интернете есть много сценариев Worker, и если поискать, вы найдете примеры.
потому что CloudFlare Worker назначено по умолчаниюworkers.dev
Доменное имя, оканчивающееся на него, вообще не может быть проанализировано в Китае.,Таким образом, доменное имя должно быть размещено на CloudFlare Его можно использовать в обычном режиме и можно приобрести. .xyz
Другие доменные имена с соответствующей оплатой используются исключительно для доступа через прокси.
но CloudFlare Worker CDN часто страдает судорогами,иногда очень быстро иногда очень медленно,Можно использоватьВыберите предпочитаемый инструмент IPПомогите получить доступ CloudFlare IP с наименьшей задержкой, запишите его на локальный Hosts в файле.
Когда дело доходит до самостоятельной сборки, первое, о чем я думаю, — это купить сторонний сервер с относительно низкой конфигурацией, настроить Nginx в качестве прокси и поделиться файлом конфигурации Nginx, который я успешно настроил:
server {
listen 443 ssl;
server_name доменное имя;
ssl_certificate адрес сертификата;
ssl_certificate_key Ключевой адрес;
ssl_session_timeout 24h;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
proxy_pass https://registry-1.docker.io; # Docker Hub Официальный репозиторий Зеркало
proxy_set_header Host registry-1.docker.io;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_intercept_errors on;
recursive_error_pages on;
error_page 301 302 307 = @handle_redirect;
}
location @handle_redirect {
resolver 1.1.1.1;
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
Затем вы можете использовать его напрямую docker pull Доменное имя/библиотека/nginx: последний
Получите изображение или настройте его так, чтобы Docker изdaemon.json
середина。
Для прокси-решения Nginx вам необходимо приобрести подходящий зарубежный сервер, иначе сеть будет работать очень медленно.
Или создайте хранилища образов, такие как Registry, Nexus и Harbour, на зарубежных серверах. У них есть функции кэширования изображений. Если частного хранилища изображений не существует, последний образ будет получен из прокси-сервиса.
Таким образом, для индивидуальных пользователей и малых и средних предприятий вышеупомянутое CloudFlare Worker
+ Зеркальный склад своими руками.
Интегрируйте и создавайте локально Реестр, Нексус, Харбор и другие зеркальные склады, настройте свой на зеркальном складе CloudFlare Worker
Обратная генерация Nginx
Дождитесь адреса прокси или других доступных на данный момент прокси. Если локальный прокси не существует, изображение будет получено через эти прокси. Когда прокси недоступен, локальный прокси все равно можно использовать.
Создать реестр Docker Вы можете обратиться к следующим командам:
docker run -d --restart=always --name registry \
-p 443:443
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \ URL склада #Агента в Зеркало
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ #Слушатьадрес
-е REGISTRY_HTTP_HOST=https://xxx.cn \ #Доступ к доменному имени
-e REGISTRY_HTTP_TLS_CERTIFICATE=/opt/cert/cert.pem \ #Сертификат доменного имени
-e REGISTRY_HTTP_TLS_KEY=/opt/cert/cert.key \ #Сертификат доменного имени
-v /opt/cert:/opt/cert \ #Подключаем локальный сертификат в контейнер
-v /data:/var/lib/registry \ #постоянный каталог данных
registry:2
Необязательный Docker Заказстроить Nexus。
docker run -d -p 8081:8081 --name nexus sonatype/nexus3
Или используйте Rainbond Установка в один клик из App Store.
строить Войдите в систему в обычном режиме после завершения Nexus Страница, направляйте конфигурацию в соответствии со страницей. Docker связанное хранилище Repository и агенты Repository Вот и все.
Можно ссылаться Портовая документация строить Или используйте Rainbond Установка в один клик из App Store.
За последние десять дней я перепробовал множество ускорительных станций «Зеркало».,В настоящее время доступны следующие сайты Зеркало.,но в любой момент может столкнуться с недоступностью, отключением или медленным доступом.,Рекомендуется настроить несколько источников Зеркало одновременно.
поставщик | адрес | |
---|---|---|
DaoCloud | ||
Алибаба Облако | https://<your_code>.mirror.aliyuncs.com | Войдите в облачную систему распределения Alibaba. |
Прокси-образ образа Docker | Зависит от удачи | |
Байду Облако | ||
Нанкинский университет | ||
Китайская академия наук |
Недавно Rainbond Сообщество также получило множество отзывов пользователей. Docker Образ нельзя извлечь, собрать или упаковать, поэтому Rainbond Также есть услуга ускорения Зеркало, используя CloudFlare + внешний сервер Nginx 反代
из方案为 Rainbond Пользователи сообщества предоставляют услуги ускорения изображений.
На данный момент это довольно быстро (трудно сказать о будущем)
1. Получите образ Docker Hub напрямую.
docker pull docker.rainbond.cc/library/node:20
docker pull docker.rainbond.cc/rainbond/rainbond:v5.17.2-release-allinone
2. Настройте ускоритель изображений
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.rainbond.cc"]
}
EOF
systemctl daemon-reload
systemctl restart docker