Введение
В этом испытании мы будем работать с Docker-образами. Docker-контейнер-образ — это легковесный, автономный, исполняемый пакет программного обеспечения, содержащий все, что необходимо для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки.
Изменить Docker-образ
Docker-образ содержит имя образа и тег образа, при этом имя образа включает адрес репозитория и идентификатор образа. В этом разделе мы отправим Docker-образ, созданный кем-то другим, в наш репозиторий.
Цель
Ваша цель — отправить публичные образы ubuntu на dockerhub в ваш частный репозиторий.
Пример результата
Вот пример того, что вы должны быть в состоянии достичь к концу этого испытания:
- Зарегистрируйтесь на
dockerhubи войдите в систему.

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

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

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

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

Требования
Для завершения этого испытания вам понадобится:
- Установить Docker-эн진.
- Иметь некоторое представление о командах Docker в командной строке.
- Существовать уже Docker-образ, который необходимо обновить
Собрать веб-образ
Мы обычно используем nginx для запуска статических приложений, таких как веб-сайты. В этом разделе мы создадим наш веб-образ.
Цель
Ваша цель — создать Docker-контейнер-образ, упаковать в него простое веб-приложение, а затем использовать этот образ для запуска контейнера и обеспечить его корректный доступ.
Пример результата
Вот пример того, что вы должны быть в состоянии достичь к концу этого испытания:
- Создайте новый файл с именем
index.htmlв директории/home/labex/Codeс содержимымhello labex.

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

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

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

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

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

Требования
Для завершения этого испытания вам понадобится:
- Построение с использованием
Dockerfile - Указать базовый образ в виде
Nginx:latest - Открыть порт
80вDockerfileс использованием команды EXPOSE - После завершения сборки убедиться, что контейнер может запускаться корректно и реагировать на HTTP-запросы
Сборка образа с несколькими этапами
Создание контейнер-образа обычно включает два этапа:
- Компиляция сборки приложения.
- Создание образа приложения.
В этом разделе мы объединим эти два этапа в один Docker-файл, чтобы достичь многоэтапной сборки.
Для завершения этого раздела испытания мы подготовили проект Hello World по адресу https://github.com/joker-bai/go-hello-world.git.
Цель
Ваша цель — использовать многоэтапную сборку для создания контейнер-образа и использовать этот образ для запуска контейнера и обеспечить его корректный доступ.
Пример результата
Вот пример того, что вы должны быть в состоянии достичь к концу этого испытания:
Создайте директорию
hello-worldв директории/home/labex/Code.
Создайте в этой директории файл
Dockerfileс таким содержимым
Создайте Docker-образ в формате
your_dockerhub_id/go-hello-world:1.1.0.
Отправьте образ на docker hub.

Запустите контейнер с именем
go-hello-worldи откройте порт8080.
Перейдите по адресу
http://127.0.0.1:8080, чтобы проверить, все ли в порядке.
Требования
Для завершения этого испытания вам понадобится:
- Построение с использованием
Dockerfile - После завершения сборки убедиться, что контейнер может запускаться корректно и реагировать на HTTP-запросы
Резюме
Поздравляем с завершением всех элементов этого испытания! Теперь у вас есть гибкость при создании и управлении образами приложений.



