Узнайте, как хранить образы Docker в собственном локальном реестре или в репозитории Docker Hub. Это позволяет хранить и упорядочивать образы Docker и обмениваться образами между командами.
- «Registry» или «Repository»
- Настройка собственного реестра Docker
- Переместите образ в собственный реестр
- Остановите и удалите собственный реестр
- Разрешить внешний доступ к вашему собственному реестру
- Доступ к собственному реестру с другого хоста
- Настройка репозитория Docker Hub
- Официальные изображения
- Создайте учетную запись Docker Hub
«Registry» или «Repository»
Репозиторий — это место , где фактически хранятся данные. Реестр представляет собой набор ссылок на эти данные.
Каталог библиотеки в этом примере — это реестр , к которому можно обратиться, чтобы найти местонахождение нужной книги. Фактические книжные полки библиотеки являются их хранилищем.
Требования
- Базовые знания использования Docker и команд командной строки.
- Docker установлен и работает в вашей системе.
- Интернет-соединение.
Если вы настраиваете собственный репозиторий и делаете его доступным через Интернет, вам также потребуются:
- Доменное имя и рабочий URL.
- SSL-сертификат.
Настройка собственного реестра Docker
Docker предлагает встроенный сервер регистрации. Сервер реестра работает в контейнере, который можно запустить с помощью команды запуска docker.
Например, чтобы запустить сервер реестра с именем «my-registry», выполните следующую команду:
sudo docker run -d -p 5000:5000 --name my-registry registry:2
Переместите образ в собственный реестр
Первый шаг к использованию собственного реестра — пометить образ Docker для этого реестра с помощью команды docker tag:
sudo docker tag [image name] localhost:5000/[image name]
Например, чтобы изменить тег образа my-nginx для собственного реестра, выполните следующую команду:
sudo docker tag my-nginx localhost:5000/my-nginx
Затем вы можете переместить этот образ в свой реестр с помощью следующей команды:
sudo docker push localhost:5000/[image name]
Команда для перемещения изображения, которое мы создали в приведенном выше примере:
sudo docker push localhost:5000/my-nginx
Получите образ из собственного реестра
sudo docker pull localhost:5000/[image name]
Например, чтобы загрузить изображение, которое мы создали в приведенном выше примере, выполните следующую команду:
sudo docker pull localhost:5000/my-nginx
Остановите и удалите собственный реестр
Если вы допустили ошибку или просто хотите остановить и удалить созданный вами реестр вместе со всеми хранящимися там образами, используйте следующую команду:
Например, чтобы остановить и удалить созданный выше реестр под названием My-registry, команда будет выглядеть так:
sudo docker stop my-registry && docker rm -v my-registry
Разрешить внешний доступ к вашему собственному реестру
Прежде чем вы начнете делиться своим личным реестром, вам необходимо защитить доступ с помощью TLS через SSL-сертификат .
Создайте каталог с именем certs в корневом каталоге Docker. В большинстве систем это каталог /var/lib/docker :
sudo mkdir /var/lib/docker/certs
Назовите файл SSL-сертификата (сертификата) domain.crt и ваш ключ SSL domain.key.
Если вы обновляете существующий резидентный реестр, вы должны остановить его с помощью следующей команды:
sudo docker stop [repository name]
Запустите (или перезапустите) собственный реестр с помощью команды:
sudo docker run -d -p 5000:5000 --restart=always --name my-registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
Доступ к собственному реестру с другого хоста
Чтобы получить доступ к вашему реестру с другого хоста, используйте [ваш домен]:5000/[имя изображения].
Например, чтобы отправить образ с именем my-nginx в реестр, размещенный на сайте example.com, вы должны сначала пометить образ:
sudo docker tag my-nginx example.com:5000/my-nginx
Затем вы можете переместить изображение с помощью следующей команды:
sudo docker push example.com:5000/ubuntu
Чтобы загрузить тот же образ из этого реестра, используйте команду:
sudo docker pull example.com:5000/ubuntu
Настройка репозитория Docker Hub
Веб -сайт Docker Hub — это удобное место для хранения и организации образов Docker в облаке. Вы можете использовать этот веб-сайт для размещения собственного общедоступного или частного репозитория, управления доступом пользователей к репозиторию и доступа к репозиторию из любого места в Интернете.
Официальные изображения
Docker Hub также является отличным местом для просмотра общедоступных образов Docker. Обратите внимание, что только репозитории с пометкой «Официальные» содержат официальные версии изображений.

Мы рекомендуем загружать и запускать только официальные образы Docker.
Создайте учетную запись Docker Hub
Для начала вам необходимо настроить учетную запись Docker Hub. Заполните данные своей учетной записи на главной странице Docker Hub и нажмите «Войти».

Проверьте свою электронную почту на наличие сообщения о завершении активации учетной записи, а затем войдите на сайт.

Каждая учетная запись Docker Hub может создать набор бесплатных общедоступных репозиториев. Каждая учетная запись также поставляется с бесплатным частным репозиторием. Вы можете приобрести дополнительные приватные репозитории за ежемесячную плату.
Организация и формирование команды
С помощью Docker Hub вы можете настроить организации и команды для управления набором пользователей. Это удобно, когда у вас есть несколько разных групп людей и вам нужно управлять их разрешениями по отдельности.
Три уровня доступа:
- Чтение (можно только загружать изображения, но не перемещать)
- Запись (может как загружать, так и перемещать изображения)
- Администратор (может загружать и перемещать изображения, добавлять и удалять пользователей)
Создать организацию
На панели управления Docker Hub нажмите «Создать организацию».

Введите данные компании и нажмите «Создать».

Каждый бизнес начинается со стандартной команды под названием » Владелец» .
Чтобы добавить кого-то еще в число владельцев , введите имя пользователя Docker Hub и нажмите синий +.

Сделайте свою организацию общедоступной или частной
Компании по умолчанию являются публичными. Чтобы сделать вашу организацию частной , нажмите Настройки на главной странице организации.

Нажмите Частный , а затем нажмите Сохранить.

Добавление команды
Чтобы добавить команду, выберите название своей организации в раскрывающемся меню (если оно еще не выбрано) и нажмите » Команды«.

На странице Teams щелкните Create team .

Введите название и описание команды, затем нажмите «Добавить».

Создание репозитория Docker Hub
На панели управления Docker Hub щелкните Создать репозиторий.

Заполните сведения о репозитории (убедитесь, что в раскрывающемся списке «Видимость» указано значение » Общедоступный » или «Частный »), затем нажмите «Создать».

На следующей странице представлены сведения о вашем новом репозитории, включая команду Docker Pull для ваших образов.

Настройка доступа команды к репозиторию
Чтобы настроить доступ к репозиторию по командам, нажмите «Соавторы» .

В нашем примере у нас есть две команды:
- Отдел QA jdoesoftwareqa, которому требуется доступ для чтения (но не для записи) к изображениям.
- Разработчики jdoesoftwaredev, которым нужен доступ как для чтения, так и для записи изображений.
QA не нужно отправлять обновленные образы в репозиторий, и мы хотим предотвратить их случайное выполнение. Однако разработчикам необходим полный доступ к репозиторию.
В целях безопасности желательно разделить всех пользователей Docker Hub как минимум на две группы:
Чтобы настроить доступ для группы, выберите команду и уровень доступа в раскрывающихся меню, затем нажмите «Добавить группу».

Доступ к репозиторию Docker Hub из командной строки
Чтобы получить доступ к вашему репозиторию Docker Hub из командной строки, вы должны сначала пройти аутентификацию в Docker Hub, используя логин, который вы создали на веб-сайте:
sudo docker login
Вам будет предложено указать имя для входа в Docker Hub, пароль и адрес электронной почты.

После входа в систему вы можете получить доступ к репозиторию Docker Hub с помощью команд docker push и docker pull.
Отправьте образ в репозиторий Docker Hub.
Чтобы загрузить (протолкнуть) образ в репозиторий Docker Hub, вы должны сначала подготовить образ. Требуется следующее:
- Ваше имя пользователя Docker Hub или название вашей организации Docker Hub.
- Имя вашего репозитория Docker Hub.
- Необязательно: тег версии. (Если тег не указан, по умолчанию используется «последний».)
Вы можете переименовать существующий образ с помощью следующей команды:
sudo docker tag [existing image name or ID] [Docker Hub username or organization]/[repository name]:[tag]
Например, если пользователь Docker Hub jdoe хочет загрузить ubuntu-testв репозиторий Docker Hub с именем my-ubuntu-test недавний образ с именем
sudo docker tag my-ubuntu-test jdoe/ubuntu-test:1.0
Если jdoe планирует переместить образ в репозиторий под OU jdoesoftware, тогда команда:
sudo docker tag my-ubuntu-test jdoesoftware/ubuntu-test:1.0
Вы можете убедиться, что образ был переименован правильно, перечислив все образы Docker в вашей системе с помощью этой команды:
sudo docker images
Затем вы можете отправить образ в репозиторий с помощью следующей команды:
sudo docker push [Docker Hub username or organization name]/[repository name]:[tag]
Команда для перемещения изображения, которое мы переименовали в предыдущем примере:
sudo docker push jdoe/ubuntu-test:1.0
Или:
sudo docker push jdoesoftware/ubuntu-test:1.0
Чтобы убедиться, что образ был отправлен в Docker Hub, перейдите на панель инструментов Docker Hub и нажмите «Подробности» для своего репозитория.

На странице репозитория щелкните Теги.

Здесь перечислены версии, которые были отправлены в репозиторий, а также время последнего обновления.

Загрузите образ из репозитория Docker Hub.
Команда для извлечения образа из репозитория Docker Hub отображается на странице репозитория на веб-сайте Docker Hub.

Команда:
sudo docker pull [your Hub username or organization name]/[your Hub repository name]:[tag]
Например, чтобы загрузить образ jdoe/ubuntu-test:1.0 , который мы отправили на концентратор в разделе выше, выполните следующую команду:
sudo docker pull jdoe/ubuntu-test:1.0
Или:
sudo docker pull jdoesoftware/ubuntu-test:1.0
Вы можете убедиться, что образ был переименован правильно, перечислив все образы Docker в вашей системе с помощью следующей команды:
sudo docker images








