Docker-образ и реестр

DockerIntermediate
Практиковаться сейчас

Введение

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

Изменить Docker-образ

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

Цель

Ваша цель — отправить публичные образы ubuntu на dockerhub в ваш частный репозиторий.

Пример результата

Вот пример того, что вы должны быть в состоянии достичь к концу этого испытания:

  1. Зарегистрируйтесь на dockerhub и войдите в систему.

Экран регистрации и входа в Dockerhub

  1. Скачайте образ ubuntu:22.10 с docker hub на наш локальный сервер.

Загрузка Docker-образа Ubuntu

  1. Измените образ ubuntu:22.10 на адрес нашего репозитория.

Изменение репозитория Docker-образа

  1. Войдите в docker hub.

Экран входа в Docker Hub

  1. Отправьте образ в удаленный репозиторий.

Отправка образа в репозиторий

Требования

Для завершения этого испытания вам понадобится:

  • Установить Docker-эн진.
  • Иметь некоторое представление о командах Docker в командной строке.
  • Существовать уже Docker-образ, который необходимо обновить

Собрать веб-образ

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

Цель

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

Пример результата

Вот пример того, что вы должны быть в состоянии достичь к концу этого испытания:

  1. Создайте новый файл с именем index.html в директории /home/labex/Code с содержимым hello labex.

Создание файла index.html

  1. Создайте новый файл с именем Dockerfile с таким содержимым

Пример содержимого Dockerfile

  1. Создайте ваш веб-образ в формате your_dockerhub_id/web:1.1.0.

Создание веб-образа Docker

  1. Отправьте созданный веб-образ на dockerhub.

Отправка веб-образа на DockerHub

  1. Запустите контейнер с именем web с использованием your_dockerhub_id/web:1.1.0, и также нужно сопоставить порт 80 с хостом.

Запуск Docker-контейнера web

  1. Используйте команду curl для обращения по адресу http://127.0.0.1 и убедитесь, что вывод равен hello labex.

Результат выполнения команды curl hello labex

Требования

Для завершения этого испытания вам понадобится:

  • Построение с использованием Dockerfile
  • Указать базовый образ в виде Nginx:latest
  • Открыть порт 80 в Dockerfile с использованием команды EXPOSE
  • После завершения сборки убедиться, что контейнер может запускаться корректно и реагировать на HTTP-запросы

Сборка образа с несколькими этапами

Создание контейнер-образа обычно включает два этапа:

  1. Компиляция сборки приложения.
  2. Создание образа приложения.

В этом разделе мы объединим эти два этапа в один Docker-файл, чтобы достичь многоэтапной сборки.

Для завершения этого раздела испытания мы подготовили проект Hello World по адресу https://github.com/joker-bai/go-hello-world.git.

Цель

Ваша цель — использовать многоэтапную сборку для создания контейнер-образа и использовать этот образ для запуска контейнера и обеспечить его корректный доступ.

Пример результата

Вот пример того, что вы должны быть в состоянии достичь к концу этого испытания:

  1. Создайте директорию hello-world в директории /home/labex/Code. Создание директории hello world

  2. Создайте в этой директории файл Dockerfile с таким содержимым Пример создания Dockerfile

  3. Создайте Docker-образ в формате your_dockerhub_id/go-hello-world:1.1.0. Процесс создания Docker-образа

  4. Отправьте образ на docker hub. Отправка Docker-образа на хаб

  5. Запустите контейнер с именем go-hello-world и откройте порт 8080. Запуск контейнера go hello world

  6. Перейдите по адресу http://127.0.0.1:8080, чтобы проверить, все ли в порядке. Проверка HTTP-ответа контейнера

Требования

Для завершения этого испытания вам понадобится:

  • Построение с использованием Dockerfile
  • После завершения сборки убедиться, что контейнер может запускаться корректно и реагировать на HTTP-запросы

Резюме

Поздравляем с завершением всех элементов этого испытания! Теперь у вас есть гибкость при создании и управлении образами приложений.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться