0

practicum

Практическая работа. Создание докер-образа и загрузка его в Container Registry

26.04.2022

На этой практической работе вы создадите реестр в Yandex Container Registry, подготовите Docker-образ виртуальной машины и поместите его в реестр, а затем создадите машину из этого образа.

  1. Установите Docker.
  2. Создайте реестр в 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" 
  1. Аутентифицируйтесь в Yandex Container Registry с помощью Docker Credential helper. Это нужно для того, чтобы внешняя платформа Docker могла от вашего имени отправить образ в ваш приватный реестр в Yandex.Cloud.
Скопировать кодyc container registry configure-docker 
  1. Подготовьте Dockerfile. Можете использовать Dockerfile из урока о Docker:
Скопировать кодFROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y nginx
ENTRYPOINT ["nginx", "-g", "daemon off;"] 

По умолчанию Docker использует файл с именем Dockerfile и без расширения.

  1. Соберите образ из Dockerfile (не забудьте подставить идентификатор своего реестра):
Скопировать кодdocker build . -t cr.yandex/crpfpd8jhhldiqah91rc/ubuntu-nginx:latest 

Ключ -t позволяет задать образу имя.Напоминаем, что в Yandex Container Registry можно загрузить только образы, названные по такому шаблону:

Скопировать кодcr.yandex/<ID реестра>/<имя Docker-образа>:<тег> 
  1. Загрузите Docker-образ в реестр:
Скопировать кодdocker push cr.yandex/crpfpd8jhhldiqah91rc/ubuntu-nginx:latest 
  1. В веб-консоли перейдите в реестр и предоставьте всем пользователям право использовать хранящиеся образы. Для этого в правом верхнем углу нажмите кнопку ACL реестра. В списке ролей для allUsers уже отмечена роль viewer, отметьте вторую роль — container-registry.images.puller — и сохраните настройки.
image
  1. Создайте виртуальную машину с помощью Container Optimized Image.

При создании машины в разделе Выбор образа загрузочного диска переключитесь на вкладку Container Solution и нажмите Настроить. Выберите из реестра созданный образ, остальные настройки оставьте по умолчанию и нажмите Применить.Другие настройки виртуальной машины мы уже разбирали.

  1. Когда новая виртуальная машина получит статус Running, в веб-консоли посмотрите ее внешний IP адрес и убедитесь, что по этому адресу отображается приветственная страница nginx.

Обратите внимание! C помощью Docker-образа вы создали и запустили виртуальную машину с предустановленным, нужным вам ПО. При этом вам даже не потребовалось заходить внутрь ВМ и выполнять установку или настройку ПО вручную.

Свежие комментарии

Подписка

Лучшие статьи


Fatal error: Uncaught Error: Call to a member function have_posts() on null in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php:380 Stack trace: #0 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/widget.php(257): fox56_blog_grid(NULL, Array) #1 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/register.php(33): include('/home/host18670...') #2 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/class-wp-widget.php(394): Wi_Widget_Latest_Posts->widget(Array, Array) #3 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/widgets.php(837): WP_Widget->display_callback(Array, Array) #4 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(417): dynamic_sidebar('sidebar') #5 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(136): fox56_single_sidebar() #6 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(7): fox56_single_inner() #7 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/single.php(23): fox56_single() #8 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/template-loader.php(106): include('/home/host18670...') #9 /home/host1867038/the-devops.ru/htdocs/www/wp-blog-header.php(19): require_once('/home/host18670...') #10 /home/host1867038/the-devops.ru/htdocs/www/index.php(17): require('/home/host18670...') #11 {main} thrown in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php on line 380