Это можно решить, установив внутренний источник докера.
sudo vi /etc/docker/daemon.json
Напишите следующее
{
"registry-mirrors" : [
"https://mirror.ccs.tencentyun.com"
]
}
Перезапустите службу докеров.
systemctl restart docker.service
Изменять docker Источник может решить только docker pull Проблема с медлительностью, если загрузку необходимо выполнить, например, на этапе сборки. apt update
、pip install
Такие операции требуют замены соответствующего источника.
заменять pip Исходный код относительно прост и может быть найден в pip Укажите источник при команде, например pip install -i https://pypi.mirrors.ustc.edu.cn/simple requests
。
заменять apt источник более хлопотный, потому что разные base image Вы можете столкнуться с разными проблемами. Например python-slim Зеркальное отображение требует замены /etc/apt/sources.list
файле, ошибки проверки открытого ключа будут сообщены после добавления внутренних источников, см. How can I write a Dockerfile based on Debian Slim in which 'apt-get update' doesn't fail with public key errors?,Добавьте открытый ключ в соответствии с онлайн-руководством,Сначала вам будет предложено установить его. gnupg:E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation,Хотите установить gnupg должен быть запущен первым apt-update
. Я должен был казнить apt-update
,Весь цикл закрыт.
Используйте переменные среды HTTP_PROXY/HTTPS_PROXY для установки прокси, но прокси SOCKS не поддерживаются.
использовать proxychains docker build ...
,Но это только правда docker CLI Клиент вступает в силу, и сборка фактически происходит в dockerd сервер, поэтому эта конфигурация недействительна, см. Решение проблемы неэффективного ускорения изображений в Docker。
Поэтому рассмотрите возможность создания удаленного (заграничного) сервера.
Способ первый:
Синхронизируйте репозиторий кода на удаленном сервере и соберите его, затем docker save <image.tar.gz>
пакет, пропуск scp или rsync Синхронизировать с локальным хранилищем для повторного использования docker load -i <image.tar.gz>
импортировать。или ВОЗиспользоватьСервис изображений контейнеровТолкатьитянуть。
# remote
docker login ccr.ccs.tencentyun.com --username=XXX
docker tag test:0.1 ccr.ccs.tencentyun.com/YOUR_NAMESPACE/test:0.1
docker push ccr.ccs.tencentyun.com/YOUR_NAMESPACE/test:0.1
# local
docker pull ccr.ccs.tencentyun.com/YOUR_NAMESPACE/test:0.1
Способ второй:
ссылка Can I build a Docker container from the CLI against a remote daemon? и How to Use a Remote Docker Server to Speed Up Your Workflow,Настроить удаленно dockerd На стороне сервера локальная сборка напрямую запрашивает удаленную сборку, что устраняет необходимость синхронизации хранилища кода. Однако образ, созданный таким способом, все равно удален и требует того же docker save
/docker load
или ВОЗ docker push
/docker pull
Операции синхронизируются обратно с локальным.
ssh-copy-id root@remote_host
export DOCKER_HOST=ssh://root@remote_host
# check docker server info
docekr info | grep Name
# build with remote docker server
docker build -t test:0.1 .
# unset environment
unset DOCKER_HOST