Практическая работа. Создание докер-образа и загрузка его в Container Registry
- Создание докер-образа и загрузка его в Yandex Container Registry.
- Установка Docker и создание реестра в Yandex Container Registry.
- Аутентификация в Yandex Container Registry с помощью Docker Credential helper.
- Подготовка Dockerfile и сборка образа.
- Загрузка Docker-образа в реестр: docker push cr.yandex/<идентификатор_реестра>/ubuntu-nginx:latest.
- Предоставление прав на использование образов всем пользователям реестра.
- Создание виртуальной машины с помощью Container Optimized Image и настройка загрузочного диска.
- Запуск виртуальной машины и проверка доступа к приветственной странице NGINX.
ПР. Создание докер-образа и загрузка его в Container Registry
В этой практической работе вы создадите реестр в Yandex Container Registry, подготовите Docker-образ виртуальной машины и поместите его в реестр, а затем создадите машину из этого образа.
-
Создайте реестр в Yandex Container Registry:
yc container registry create --name my-registryОбратите внимание, что в выводе есть уникальный идентификатор (id) реестра. Он пригодится вам для следующих команд.id: crpfpd8jhhldiqah91rc folder_id: b1gfdbij3ijgopgqv9m9 name: my-registry status: ACTIVE created_at: "2021-04-06T00:46:48.150Z" -
Аутентифицируйтесь в Yandex Container Registry с помощью Docker Credential helper. Это нужно для того, чтобы внешняя платформа Docker могла от вашего имени отправить образ в ваш приватный реестр в Yandex Cloud.
yc container registry configure-docker -
Подготовьте
Dockerfile. Можно использовать файл из урока о Docker:FROM ubuntu:latest RUN apt-get update -y RUN apt-get install -y nginx ENTRYPOINT ["nginx", "-g", "daemon off;"]По умолчанию Docker использует файл с именемDockerfileи без расширения. -
Перейдите в папку с
Dockerfileи соберите образ (не забудьте подставить идентификатор своего реестра):docker build . -t cr.yandex/<идентификатор_реестра>/ubuntu-nginx:latestКлюч-tпозволяет задать образу имя.Напоминаем, что в Yandex Container Registry можно загрузить только образы, названные по такому шаблону:cr.yandex/<ID реестра>/<имя Docker-образа>:<тег> -
Загрузите Docker-образ в реестр:
docker push cr.yandex/<идентификатор_реестра>/ubuntu-nginx:latest -
В консоли управления перейдите в реестр и предоставьте всем пользователям право использовать хранящиеся образы. Для этого перейдите на вкладку Права доступа, в правом верхнем углу нажмите кнопку Назначить роли. В открывшемся окне нажмите кнопку Выбрать пользователя, на вкладке Группы выберите
All users. Нажмите кнопку Добавить роль и последовательно введитеviewerиcontainer-registry.images.puller. Нажмите кнопку Сохранить.
-
В консоли управления создайте ВМ с помощью Container Optimized Image.При создании машины в разделе Выбор образа загрузочного диска переключитесь на вкладку Container Solution и нажмите Настроить. Выберите из реестра созданный образ, остальные настройки оставьте по умолчанию и нажмите Применить.
Другие настройки ВМ мы уже разбирали. -
Когда новая ВМ получит статус
Running, найдите её внешний IP адрес в консоли управления и убедитесь, что по этому адресу отображается приветственная страница NGINX.
Обратите внимание!
C помощью Docker-образа вы создали и запустили виртуальную машину с предустановленным, нужным вам ПО. При этом вам даже не потребовалось заходить внутрь ВМ и выполнять установку или настройку ПО вручную.
Поздравляем, вы завершили тему «Контейнеры и Docker Container Registry»
На этом мы заканчиваем знакомство с контейнерами и Docker. Теперь вы понимаете отличия контейнеров от виртуальных машин и умеете создавать образы контейнеров с помощью Docker. Созданный Docker-образ вам ещё пригодится. Дальше вы узнаете, как автоматизировать работу с контейнерами и организовывать их в кластеры.