Дополнительно
Как перенести образ docker в частное хранилище
У меня есть docker-образ, помеченный как me/my-image, и у меня есть частное репо на dockerhub под названием me-private. Когда я выкладываю свой образ me/my-image, я всегда попадаю в публичное репо.
Каков точный синтаксис, чтобы специально вытолкнуть мое изображение в мое частное репо?
362
9
Сначала нужно правильно пометить изображение в теге
registryhost
:Затем docker push, используя этот же тег.
Пример:
Всего три простых шага:
докер логин-имя пользователя имя пользователя
тег докер мой-изображения имя пользователя/мои-РЕПО
`докер нажимаем логин/мой-РЕПО
Сначала зайдите в свой аккаунт Docker Hub и создайте репозиторий. Вот скриншот моей учетной записи Docker Hub:
Из снимка видно, что мой репо - "chuangg".
Теперь зайдите в репозиторий и сделайте его приватным, нажав на имя вашего образа. Для меня я выбрал "chuangg/gene_commited_image", затем перешел к Settings -> Make Private. Затем я последовал инструкциям на экране
КАК ЗАГРУЗИТЬ ОБРАЗ DOCKER НА DOCKER HUB
Метод #1= Загрузка образа через командную строку (cli).
docker commit /
.Да, я думаю, это должен быть ID контейнера. Вероятно, это не может быть ID образа.
Например=
docker commit 99e078826312 chuangg/gene_commited_image
.docker run -it chaung/gene_commited_image
.docker login --username= --password=
.Например=
docker login --username=chuangg --email=gc.genechaung@gmail.com
.Да, вы должны сначала войти в систему. Выход из системы с помощью "docker logout"
docker push chuangg/gene_commited_image
Метод #2= Запуск образа с помощью pom.xml и командной строки..
Примечание, я использовал профиль Maven под названием "build-docker". Если вы не хотите использовать профиль, просто удалите элементы
, и build-docker
.Внутри родительского pom.xml:
Команда терминала Docker для развертывания образа Docker (из каталога, где находится ваш pom.xml)=
mvn clean deploy -Pbuild-docker docker:push
.Обратите внимание, разница между методом #2 и #3 в том, что метод #3 имеет дополнительное `` для развертывания.
Метод #3= Использование Maven для автоматического развертывания в Docker Hub.
Добавьте все это в родительский pom.xml:
Перейдите в каталог C:\Users\Gene.docker\ и добавьте это в файл config.json:
Теперь в терминале быстрого запуска Docker введите =
mvn clean install -Pbuild-docker
.Для тех, кто не использует профили Maven, просто введите
mvn clean install
.Вот скриншот сообщения об успехе:
Вот мой полный pom.xml и скриншот структуры каталогов:
Вот моя директория Eclipse:
Вот мой Dockerfile:
Common Error #1:
Решение для ошибки #1= Не синхронизируйте `
с фазой развертывания maven, потому что тогда maven пытается развернуть образ 2x и ставит временную метку на jar. Вот почему я использовал
install`.Если вы докер реестра является частным и самодостаточно вы должны выполнить следующие действия :
Пример :
Есть два варианта:
Зайдите в хаб, сначала создайте репозиторий и отметьте его как приватный. Затем, когда вы делаете push в это хранилище, оно будет приватным. Это наиболее распространенный подход.
войдите в учетную запись docker hub и перейдите к глобальным настройкам. Там есть параметр, который позволяет вам установить, какой будет видимость по умолчанию для репозиториев, которые вы продвигаете. По умолчанию он установлен на public, но если вы измените его на private, все ваши репозитории, которые вы размещаете, будут по умолчанию помечены как private. Важно отметить, что на вашем аккаунте должно быть достаточно приватных репозиториев, иначе репозиторий будет заблокирован до тех пор, пока вы не перейдете на новый тарифный план.
Создать репозиторий на dockerhub :
$докер теге однако UsernameOnDockerhub/repoNameOnDockerhub:последний
$докер толкать UsernameOnDockerhub/repoNameOnDockerhub:последний
Примечание : здесь "в repoNameOnDockerhub-то" : репозиторий с именем, которые вы упоминаете имеет присутствовать на dockerhub
на "Последний" - а : это просто тег
Реф: dock.docker.com
В этом разделе представлены основные сведения о развертывании и настройке реестра
Запуска локального реестра
Перед развертыванием реестра, нужно установить настройки на хост.
Используйте следующую команду для запуска контейнера реестра:
start_registry.sh
Скопировать изображение из Докер-концентратор в реестр
в Ubuntu:16.04
из Докер-концентратор.$ докер тянуть в Ubuntu:16.04
localhost:5000/мой-Убунту
. Это создает дополнительный тег для существующего изображения. Когда первая часть тега-имя хоста и порт, Докер интерпретирует это как расположение реестра, когда тужиться.$ докер тегов в Ubuntu:16.04 на localhost:5000/мой-Убунту
localhost:5000
:$ докер нажать на localhost:5000/мой-Убунту
$ Docker-образ удалить Убунту:16.04 $ Docker-образ удалите localhost:5000/мой-Убунту
$ докер тянуть на localhost:5000/мой-Убунту
Развернуть обычный HTTP реестра
По данным docs.docker.com, это очень небезопасной и не рекомендуется.
, положение которой по умолчанию из/etc/докер/демон.формат JSON
на Linux илиC:\ProgramData\docker\config\daemon.json на сервере Windows. Если вы используете
настройки для Mac " или " Докер для Windows, значок -&нажмите кнопку
Настройки и gt; Настройки -> Демон`, добавить в небезопасной реестра.Если демон.JSON-файл не существует, создайте его. Предполагая, что нет никаких дополнительных настроек в файл, он должен иметь следующее содержание:
{ на "небезопасно-реестры-то" : ["и myregistrydomain.ком:5000" и] }
С неуверенным реестры включено, Докер проходит следующие этапы:
Сначала войти в свой собственный репозиторий.
например:
И затем помечать изображения для вашего частного хранилища
например:
Наконец-то толкать свои тагед изображений в отдельный репозиторий
например:
Ссылка
Простой рабочий раствор:
Иди сюда https://hub.docker.com/
создать отдельный репозиторий с именем например
иванпетров/частного репозиторияэто
имя/репозиторий` вы будете использовать для вашего образа при построении изображения.Во-первых,
докер логин
Во-вторых, я использую "
в докер построить -Т иванпетров/частного репозитория:01 .
&и" (где 01-Это мой вариант названия) для создания изображения, и я использую "`в докер изображений", чтобы подтвердить изображения, созданные как в этом желтом поле ниже: (к сожалению я не могу вставить таблицу формата, но текст только)Молодец!