Skip to content

Latest commit

 

History

History
145 lines (80 loc) · 6.09 KB

Введение. Экосистема. Архитектура. Жизненный цикл Docker контейнера.md

File metadata and controls

145 lines (80 loc) · 6.09 KB

Задача 1 Сценарий выполения задачи:

создайте свой репозиторий на https://hub.docker.com; выберете любой образ, который содержит веб-сервер Nginx; создайте свой fork образа; реализуйте функциональность: запуск веб-сервера в фоне с индекс-страницей, содержащей HTML-код ниже:

Hey, Netology

I’m DevOps Engineer!

Опубликуйте созданный форк в своем репозитории и предоставьте ответ в виде ссылки на https://hub.docker.com/username_repo.

Ответ 1

Создадим в каталоге /opt/_d_nginx/_data файл index.html с необходимым содержанием. img_4.png img_5.png

Создаем на основе скаченного заранее образа dockerfile следующего содержания img_6.png

Файл test.html находится в одной папке с dockerfile. Соберем образ. img_7.png

Запустим контейнер

img_8.png

В итоге видим тот же результат + погрешности кодировки

img_9.png

https://hub.docker.com/r/mrkobz/nginxdocker

Задача 2 Посмотрите на сценарий ниже и ответьте на вопрос: "Подходит ли в этом сценарии использование Docker контейнеров или лучше подойдет виртуальная машина, физическая машина? Может быть возможны разные варианты?"

Детально опишите и обоснуйте свой выбор.

--

Сценарий:

Высоконагруженное монолитное java веб-приложение;

Ответ:

На мой взгляд использование докера подразумевает некую микросервисность(выполнение какого ли бо одного сервиса в контейнере). Монолитное, высоконагруженное приложение в данном случае такого не приемлет. Для контейнеризации его надо полностью переписывать. В том виде как есть - контейнеризация не подойдет. Я бы выбрал физическую среду или виртуальную машину.

Nodejs веб-приложение;

Ответ:

Контейнеризация подходит.

Мобильное приложение c версиями для Android и iOS;

Ответ:

Контейнеризация не подходит. Я б использовал виртуализацию.

Шина данных на базе Apache Kafka;

Ответ:

Я бы не стал использовать. В случае, если решение кластеризировано и критично, контейнеризация только все усложнит.

Elasticsearch кластер для реализации логирования продуктивного веб-приложения - три ноды elasticsearch, два logstash и две ноды kibana;

Ответ: Я бы не стал использовать. Опять из-за вопросов кластеризации и критичности.

Мониторинг-стек на базе Prometheus и Grafana;

Ответ:

В данном случае контейнеризация приемлема.

MongoDB, как основное хранилище данных для java-приложения;

Ответ:

Я бы не стал использовать контейнеризацию для БД. Однозначно или физическая среда или виртуалка.

Gitlab сервер для реализации CI/CD процессов и при ватный (закрытый) Docker Registry.

Ответ:

Я бы выбрал или физическую среду, или виртуальную.

Задача 3 Запустите первый контейнер из образа centos c любым тэгом в фоновом режиме, подключив папку /data из текущей рабочей директории на хостовой машине в /data контейнера; Запустите второй контейнер из образа debian в фоновом режиме, подключив папку /data из текущей рабочей директории на хостовой машине в /data контейнера; Подключитесь к первому контейнеру с помощью docker exec и создайте текстовый файл любого содержания в /data; Добавьте еще один файл в папку /data на хостовой машине; Подключитесь во второй контейнер и отобразите листинг и содержание файлов в /data контейнера.

Ответ:

Скачаем образы

img_10.png

Пробрасываем папку , запускаем контейнеры

img_11.png

Копируем в папку /opt/data на хостовой машине файл следующего содержания

img_13.png

img_12.png

Подключемся к контейнеру mycentos, идем в директорию /data и видим наш файл

img_15.png

Идем в контейнер mydebian в директорию /data и создаем файл

img_16.png

Проверяем наличие данного файла из контейнера mycentos и из хостовой машины

img_17.png

img_18.png