Как перенести образ docker в частное хранилище

У меня есть docker-образ, помеченный как me/my-image, и у меня есть частное репо на dockerhub под названием me-private. Когда я выкладываю свой образ me/my-image, я всегда попадаю в публичное репо.

Каков точный синтаксис, чтобы специально вытолкнуть мое изображение в мое частное репо?

Комментарии к вопросу (2)
Решение

Сначала нужно правильно пометить изображение в теге registryhost:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

Затем docker push, используя этот же тег.

docker push NAME[:TAG]

Пример:

docker tag 518a41981a6a myRegistry.com/myImage
docker push myRegistry.com/myImage
Комментарии (8)

Всего три простых шага:

  1. докер логин-имя пользователя имя пользователя
  • запрашивает пароль, если вы пропустили--пароль, который рекомендуется, поскольку он не'т сохранить его в истории команд
  1. тег докер мой-изображения имя пользователя/мои-РЕПО

  2. `докер нажимаем логин/мой-РЕПО

Комментарии (6)

Сначала зайдите в свой аккаунт Docker Hub и создайте репозиторий. Вот скриншот моей учетной записи Docker Hub:

Из снимка видно, что мой репо - "chuangg".

Теперь зайдите в репозиторий и сделайте его приватным, нажав на имя вашего образа. Для меня я выбрал "chuangg/gene_commited_image", затем перешел к Settings -> Make Private. Затем я последовал инструкциям на экране

КАК ЗАГРУЗИТЬ ОБРАЗ DOCKER НА DOCKER HUB

Метод #1= Загрузка образа через командную строку (cli).

  1. docker commit /.

Да, я думаю, это должен быть ID контейнера. Вероятно, это не может быть ID образа.

Например= docker commit 99e078826312 chuangg/gene_commited_image.

  1. docker run -it chaung/gene_commited_image.

  2. docker login --username= --password=.

Например= docker login --username=chuangg --email=gc.genechaung@gmail.com.

Да, вы должны сначала войти в систему. Выход из системы с помощью "docker logout"

  1. docker push chuangg/gene_commited_image

Метод #2= Запуск образа с помощью pom.xml и командной строки..

Примечание, я использовал профиль Maven под названием "build-docker". Если вы не хотите использовать профиль, просто удалите элементы , и build-docker.

Внутри родительского pom.xml:



            build-docker



                        io.fabric8
                        docker-maven-plugin
                        0.18.1



                                    chuangg/gene_project
                                    ${docker.container.name}


                                        ${project.basedir}\src\docker\vending_machine_emulator




                                                        ${project.basedir}\target
                                                        <outputDirectory>.

                                                            *.jar











                                docker:build
                                package

                                    build







Команда терминала Docker для развертывания образа Docker (из каталога, где находится ваш pom.xml)= mvn clean deploy -Pbuild-docker docker:push.

Обратите внимание, разница между методом #2 и #3 в том, что метод #3 имеет дополнительное `` для развертывания.

Метод #3= Использование Maven для автоматического развертывания в Docker Hub.

Добавьте все это в родительский pom.xml:



            gene
            chuangg
            false
            legacy
            https://index.docker.io/v1/





            build-docker




                        io.fabric8
                        docker-maven-plugin
                        0.18.1



                                    chuangg/gene_project1
                                    ${docker.container.name}


                                        ${project.basedir}\src\docker\vending_machine_emulator




                                                        ${project.basedir}\target
                                                        <outputDirectory>.

                                                            *.jar











                                docker:build
                                package

                                    build



                                docker:push
                                install

                                    push









Перейдите в каталог C:\Users\Gene.docker\ и добавьте это в файл config.json:

Теперь в терминале быстрого запуска Docker введите = mvn clean install -Pbuild-docker.

Для тех, кто не использует профили Maven, просто введите mvn clean install.

Вот скриншот сообщения об успехе:

Вот мой полный pom.xml и скриншот структуры каталогов:


4.0.0

com.gene.app
VendingMachineDockerMavenPlugin
1.0-SNAPSHOT
jar

Maven Quick Start Archetype
www.gene.com





                org.apache.maven.plugins
                maven-jar-plugin



                            com.gene.sample.Customer_View





                org.apache.maven.plugins
                maven-compiler-plugin
                3.1


                    1.7
                    1.7









        junit
        junit
        4.8.2
        test






        gene
        chuangg
        false
        legacy
        https://index.docker.io/v1/





        build-docker

            1.8.0





                    io.fabric8
                    docker-maven-plugin
                    0.18.1



                                chuangg/gene_project1
                                ${docker.container.name}


                                    ${project.basedir}\src\docker\vending_machine_emulator




                                                    ${project.basedir}\target
                                                    <outputDirectory>.

                                                        *.jar











                            docker:build
                            package

                                build



                            docker:push
                            install

                                push








Вот моя директория Eclipse:

Вот мой Dockerfile:

FROM java:8

MAINTAINER Gene Chuang
RUN echo Running Dockerfile in src/docker/vending_machine_emulator/Dockerfile directory

ADD maven/VendingMachineDockerMavenPlugin-1.0-SNAPSHOT.jar /bullshitDirectory/gene-app-1.0-SNAPSHOT.jar 

CMD ["java", "-classpath", "/bullshitDirectory/gene-app-1.0-SNAPSHOT.jar", "com/gene/sample/Customer_View" ] 

Common Error #1:

Решение для ошибки #1= Не синхронизируйте `с фазой развертывания maven, потому что тогда maven пытается развернуть образ 2x и ставит временную метку на jar. Вот почему я использовалinstall`.

Комментарии (0)

Если вы докер реестра является частным и самодостаточно вы должны выполнить следующие действия :

docker login :
docker tag  :/:
docker push :/:

Пример :

docker login repo.company.com:3456
docker tag 19fcc4aa71ba repo.company.com:3456/myapp:0.1
docker push repo.company.com:3456/myapp:0.1
Комментарии (0)

Есть два варианта:

  1. Зайдите в хаб, сначала создайте репозиторий и отметьте его как приватный. Затем, когда вы делаете push в это хранилище, оно будет приватным. Это наиболее распространенный подход.

  2. войдите в учетную запись docker hub и перейдите к глобальным настройкам. Там есть параметр, который позволяет вам установить, какой будет видимость по умолчанию для репозиториев, которые вы продвигаете. По умолчанию он установлен на public, но если вы измените его на private, все ваши репозитории, которые вы размещаете, будут по умолчанию помечены как private. Важно отметить, что на вашем аккаунте должно быть достаточно приватных репозиториев, иначе репозиторий будет заблокирован до тех пор, пока вы не перейдете на новый тарифный план.

Комментарии (2)

Создать репозиторий на dockerhub :

$докер теге однако UsernameOnDockerhub/repoNameOnDockerhub:последний

$докер толкать UsernameOnDockerhub/repoNameOnDockerhub:последний

Примечание : здесь "в repoNameOnDockerhub-то" : репозиторий с именем, которые вы упоминаете имеет присутствовать на dockerhub

на "Последний" - а : это просто тег

Комментарии (0)

Реф: dock.docker.com

В этом разделе представлены основные сведения о развертывании и настройке реестра

Запуска локального реестра

Перед развертыванием реестра, нужно установить настройки на хост.

Используйте следующую команду для запуска контейнера реестра:

start_registry.sh

#!/bin/bash

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /data/registry:/var/lib/registry \
  registry:2

Скопировать изображение из Докер-концентратор в реестр

  1. Вытянуть образ в Ubuntu:16.04 из Докер-концентратор.

$ докер тянуть в Ubuntu:16.04

  1. Тег изображение как локальным localhost:5000/мой-Убунту. Это создает дополнительный тег для существующего изображения. Когда первая часть тега-имя хоста и порт, Докер интерпретирует это как расположение реестра, когда тужиться.

$ докер тегов в Ubuntu:16.04 на localhost:5000/мой-Убунту

  1. Нажимаем изображение в локальный реестр работает по локальным localhost:5000:

$ докер нажать на localhost:5000/мой-Убунту

  1. Удалить локально кэшированных изображений. Это не снимает изображения с локальным `localhost:5000/мой-Убунту из вашего реестра.

$ Docker-образ удалить Убунту:16.04 $ Docker-образ удалите localhost:5000/мой-Убунту

  1. Потяните локальным `localhost:5000 изображений/мой-Убунту из локального реестра.

$ докер тянуть на localhost:5000/мой-Убунту

Развернуть обычный HTTP реестра

По данным docs.docker.com, это очень небезопасной и не рекомендуется.

  1. Редактирование демон.файл JSON, положение которой по умолчанию из/etc/докер/демон.формат JSON на Linux или C:\ProgramData\docker\config\daemon.json на сервере Windows. Если вы используетенастройки для Mac " или " Докер для Windows, значок -&нажмите кнопкуНастройки и gt; Настройки -> Демон`, добавить в небезопасной реестра.

Если демон.JSON-файл не существует, создайте его. Предполагая, что нет никаких дополнительных настроек в файл, он должен иметь следующее содержание:

{ на "небезопасно-реестры-то" : ["и myregistrydomain.ком:5000" и] }

С неуверенным реестры включено, Докер проходит следующие этапы:

  • Во-первых, попробуйте использовать протокол HTTPS.
  • Если https доступен, но сертификат является недействительным, игнорировать ошибку о сертификате.
  • Если HTTPS не доступен, упадет обратно на HTTP.
  1. Перезапустить настройки, чтобы изменения вступили в силу.
Комментарии (0)

Сначала войти в свой собственный репозиторий.

> docker login [OPTIONS] [SERVER]

[OPTIONS]: 
-u username 
-p password

например:

> docker login localhost:8080

И затем помечать изображения для вашего частного хранилища

> docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

например:

> docker tag myApp:v1 localhost:8080/myname/myApp:v1

Наконец-то толкать свои тагед изображений в отдельный репозиторий

>docker push [OPTIONS] NAME[:TAG]

например:

> docker push localhost:8080/myname/myApp:v1

Ссылка

Комментарии (0)

Простой рабочий раствор:

Иди сюда https://hub.docker.com/создать отдельный репозиторий с именем напримериванпетров/частного репозиторияэтоимя/репозиторий` вы будете использовать для вашего образа при построении изображения.

  • Во-первых, докер логин

  • Во-вторых, я использую "в докер построить -Т иванпетров/частного репозитория:01 .&и" (где 01-Это мой вариант названия) для создания изображения, и я использую "`в докер изображений", чтобы подтвердить изображения, созданные как в этом желтом поле ниже: (к сожалению я не могу вставить таблицу формата, но текст только)

иванпетров/частная-репозиторий(хранилище) 01(тег) c5f4a2861d6e(картинку) 2 дня назад(создан) 305MB(размер)

Молодец!

Комментарии (0)