Ответ 1
Вы не можете просто заставить все команды push docker нажать в свой частный реестр. Одна из причин заключается в том, что вы можете иметь любое количество этих регистров. Вы должны сначала сказать докеру, куда нажать, пометив изображение (см. Ниже).
Вот как вы можете настроить хосты докеров для работы с запущенным частным реестром и локальным зеркалом.
Настройка клиента
Предположим, что вы используете как зеркальный, так и частный реестр на (разрешимом) хосте, называемом dockerstore. Зеркало на порту 5555, реестр на 5000.
Затем на машине (машинах клиент) вы должны передать дополнительные опции для запуска демона докеров. В вашем случае:
- Добавьте
--registry-mirror=http://dockerstore:5555
, чтобы рассказать демонам, чтобы он предпочитал использовать локальное зеркало, а не докер. source - Добавить
--insecure-registry dockerstore:5000
для доступа к частному реестру без дальнейшей настройки. См. этот ответ - Перезапустить демон docker
Использование зеркала
Когда вы вытаскиваете любое изображение, первым источником будет локальное зеркало. Вы можете подтвердить, выполнив попытку докера, например
docker pull debian
На выходе появится сообщение о том, что изображение вытаскивается из вашего зеркала - докер-магазин: 5000
Использование локального реестра
Чтобы перенести в частный реестр, вы должны пометить изображение, которое будет нажато с полным именем реестра. Убедитесь, что у вас есть точка или двоеточие в первой части тега, чтобы сообщить докере, что изображение должно быть перенесено в частный реестр.
Докер ищет либо "." (разделитель домена) или ":" (разделитель портов), чтобы узнать, что первая часть имени репозитория - это местоположение, а не имя пользователя.
Пример:
Тег 30d39e59ffe2 изображение как dockerstore: 5000/myapp: stable
docker tag 30d39e59ffe2 dockerstore:5000/myapp:stable
Нажмите его в частный реестр
docker push dockerstore:5000/myapp:stable
Затем вы можете потянуть также
docker pull dockerstore:5000/myapp:stable