Настройка репозитория Docker

Узнайте, как хранить образы Docker либо в локальном реестре, либо в репозитории Docker Hub. Это позволит вам хранить и упорядочивать образы Docker, а также обмениваться ими между несколькими командами.

«Реестр» и «хранилище».

Репозиторий — это место, где хранятся данные. Реестр — это коллекция указателей на эти данные.

Например, карточный каталог библиотеки — это реестр, к которому вы обращаетесь, чтобы найти местонахождение нужной вам книги. Реальные книжные полки библиотеки — это ее хранилище.

Требования

  • Базовые знания об использовании и командах Docker.
  • Установленный и запущенный Docker на вашей системе.
  • Подключение к Интернету.

Если вы создаете репозиторий на собственном хостинге и решили сделать его доступным из Интернета, вам также потребуется:

  • Работающее доменное имя (URL).
  • SSL-сертификат.
Бесплатная проверка SSL

Настройка самораспространяемого реестра Docker

Docker предоставляет встроенный сервер реестра. Сервер реестра работает в контейнере, который можно запустить с помощью команды docker run.

Например, чтобы запустить сервер реестра с именем «my-registry», выполните следующую команду:

sudo docker run -d -p 5000:5000 --name my-registry registry:2
Примечание .

Если вы используете брандмауэр, вам может потребоваться открыть доступ к порту 5000.

Отправка образа в ваш самораспространяемый реестр

Первым шагом к использованию вашего самораспространяемого реестра является маркировка образа Docker для этого реестра с помощью команды docker tag:

sudo docker tag [image name] localhost:5000/[image name]

Например, чтобы повторно пометить образ my-nginx для вашего self-hosted реестра, команда будет следующей:

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

Остановка и удаление вашего самораспространяемого реестра

Если вы допустили ошибку или просто хотите остановить и удалить созданный вами реестр вместе со всеми хранящимися в нем образами, используйте команду:

sudo docker stop [repository name] && docker rm -v [repository name]

Например, чтобы остановить и удалить созданный нами выше реестр под названием 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-сертификата (cert) domain.crt и файл SSL-ключа domain.key. Поместите оба файла в каталог /var/lib/docker/certs.

Если вы обновляете существующий self-hosted реестр, вам нужно будет остановить его с помощью команды:

sudo docker stop [repository name]

Запустите (или перезапустите) ваш self-hosted реестр командой:

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. Имейте в виду, что только репозитории с пометкой «Official» содержат официальные версии образов.

Мы рекомендуем использовать и запускать только официальные образы Docker.

Создание учетной записи Docker Hub

Для начала вам необходимо создать учетную запись Docker Hub. Заполните данные своей учетной записи на главном сайте Docker Hub и нажмите кнопку Sign Up.

 

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

Каждый аккаунт Docker Hub может создавать несколько бесплатных публичных репозиториев. Каждая учетная запись также поставляется с одним бесплатным частным репозиторием. Вы можете приобрести больше частных репозиториев за ежемесячную плату.

Настройка организации и команд

Docker Hub позволяет создавать организации и команды для управления несколькими пользователями. Это удобно, если у вас есть несколько разных групп людей, и вам нужно управлять их разрешениями отдельно.

Существует три уровня доступа:

  • Чтение (можно только извлекать изображения, но не перемещать их)
  • Запись (может как извлекать, так и перемещать изображения)
  • Администратор (может получать и передавать изображения, а также добавлять и удалять пользователей).

Создание организации

На главной панели Docker Hub нажмите кнопку Создать организацию.

Заполните информацию об организации и нажмите кнопку Создать.

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

Чтобы добавить кого-то еще в команду Owners, введите его имя пользователя Docker Hub и нажмите синий +.

Настройка организации на публичную или частную

По умолчанию организации являются публичными. Чтобы установить для организации статус Private, на главной странице организации нажмите Settings.

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

Добавление команды

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

На странице Команды нажмите Добавить команду.

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

Примечание

Каждый раз, когда вы добавляете кого-либо в команду, он будет получать электронное письмо от Docker Hub с уведомлением об изменении.

Создание репозитория Docker Hub

На приборной панели Docker Hub нажмите кнопку Создать репозиторий.

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

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

Настройка командного доступа к хранилищу

Чтобы настроить доступ к репозиторию для команды, нажмите Collaborators.

В нашем примере у нас есть две команды:

  • Отдел контроля качества jdoesoftwareqa, которой нужен доступ к образам на чтение (но не на запись).
  • Разработчики jdoesoftwaredev, которым нужен доступ на чтение и запись к изображениям.

У QA нет необходимости отправлять обновленные образы в хранилище, и мы хотим предотвратить их случайное появление. Однако разработчикам потребуется полный доступ к хранилищу.

В целях безопасности неплохо было бы разделить всех пользователей Docker Hub как минимум на две группы: одна с доступом только для чтения, другая — для чтения/записи.

Чтобы установить доступ для команды, выберите команду и уровень доступа из выпадающего меню, а затем нажмите кнопку Добавить команду.

Доступ к репозиторию Docker Hub из командной строки

Чтобы получить доступ к репозиторию Docker Hub из командной строки, сначала необходимо пройти аутентификацию в Docker Hub, используя логин, созданный на сайте:

sudo docker login

Вам будет предложено указать имя входа в систему Docker Hub, пароль и адрес электронной почты.

После авторизации вы сможете получить доступ к своему репозиторию Docker Hub с помощью команд docker push и docker pull.

Загрузка изображения в репозиторий Docker Hub

Для загрузки (push) образа в репозиторий Docker Hub необходимо сначала подготовить образ. Для этого понадобятся:

  • Ваше имя пользователя Docker Hub или имя вашей организации Docker Hub.
  • Имя вашего репозитория Docker Hub.
  • Необязательно: Метка версии. (Если тег не указан, по умолчанию будет выбрано значение «latest»).

С помощью этой команды можно переименовать существующий образ:

sudo docker tag [existing image name or ID] [Docker Hub username or organization]/[repository name]:[tag]

Например, если пользователь Docker Hub jdoe хочет загрузить образ с текущим названием my-ubuntu-test в репозиторий Docker Hub с именем ubuntu-test и присвоить ему тег версии 1.0, образ сначала нужно будет переименовать с помощью команды:

sudo docker tag my-ubuntu-test jdoe/ubuntu-test:1.0

Если jdoe планирует выполнить push в репозиторий под организацией 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 и нажмите Details для вашего хранилища.

На странице хранилища щелкните Теги.

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

Извлечение образа из репозитория 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, который мы разместили на Hub в разделе выше, команда должна быть следующей:

sudo docker pull jdoe/ubuntu-test:1.0

Или:

sudo docker pull jdoesoftware/ubuntu-test:1.0

Вы можете убедиться, что образ был переименован правильно, перечислив все образы Docker в вашей системе с помощью команды:

sudo docker images
  • Ноу-хау

    Оцените статью
    cdelat.ru
    Добавить комментарий