Задание:
16) Развертывание приложений в Docker на SRV2-DT
- a) Создайте локальный Docker Registry.
- b) Напишите Dockerfile для приложения web.
- 1. В качестве базового образа используйте nginx:alpine
- 2. Содержание index.html
-
<html> <body> <center><h1><b>WEB</b></h1></center> </body> </html>
-
- 3. Соберите образ приложения web и загрузите его в ваш Registry.
- i. Используйте номер версии 1.0 для вашего приложения
- ii. Образ должен быть доступен для скачивания и дальнейшего запуска на локальной машине
- c) Разверните Docker контейнер используя образ из локального Registry.
- 1. Имя контейнера web
- 2. Контейнер должно работать на порту 80
- 3. Обеспечьте запуск контейнера после перезагрузки компьютера
Вариант реализации:
SRV2-DT:
- Установим пакет для работы с Docker:
apt-get update && apt-get install -y docker-engine
- Запускаем и добавляем в автозагрузку службу docker:
systemctl enable --now docker.service
- Создаём и запускаем локальный Docker Registry:
- поднимает контейнер Docker с именем DockerRegistry из образа registry:2. Контейнер будет слушать сетевые запросы на порту 5000, а параметр —restart=always позволит автоматически запускаться контейнеру после перезагрузки сервера.
docker run -d -p 5000:5000 --restart=always --name DockerRegistry registry:2
- Проверяем:
- Напишим Dockerfile для приложения web:
vim Dockerfile
-
- содержимое, где:
- FROM — задаёт базовый образ;
- COPY — копирует с локального хоста в контейнер:
- содержимое, где:
- Создадит файл index.html:
vim index.html
-
- содержимое по требованию задания:
- Выполняем сборку docker-образа:
- -t — позволяет присвоить имя собираемому образу;
- «.» — говорит о том что Dockerfile находится в текущей директории откуда выполняется данная команда и имеет имя именно Dockerfile:
docker build -t web .
-
- результат:
- Проверяем:
- наличие собранного образа
- загружаем образ собранный из Dockerfile в локальной DockerRegistry:
- присваиваем тег для размещения образа в локальном Docker Registry:
docker tag web localhost:5000/web:1.0
-
- Загружаем образ в локальный Docker Registry:
docker push localhost:5000/web:1.0
-
-
- Результат:
-
- Проверяем:
- наличие образа:
-
- и возможность загрузки из локального Docker Registry:
- перед — удаляем образы localhost:5000/web:1.0 и web:
- и возможность загрузки из локального Docker Registry:
-
-
- загружаем образ приложения web из локального Docker Registry:
-
- Запускаем docker-контейнер:
- с именем web из образа localhost:5000/web:01
- контейнер будет слушать сетевые запросы на порту 80, а параметр —restart=always позволит автоматически запускаться контейнеру после перезагрузки сервера
docker run -d -p 80:80 --restart=always --name web localhost:5000/web:1.0
- Проверяем:
- запущенный docker-контейнер:
-
- доступ до веб-сервера и приложения