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

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

Введение

В этом испытании мы будем работать с 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-запросы
✨ Проверить решение и практиковаться

Резюме

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