Введение в Docker. Разработка простого изображения Docker для вашего собственного сервера.
Российская версия задачи может быть найдена в репозитории.

Планета Земля, где -то посреди моря, сегодня.
Тебе никогда не нравилось двигаться. Много суеты, мало действий. Но вам удалось найти отличную работу в другом городе, чтобы погрузиться в мир DevOps. И вы не из тех, кто позволит немного неприятности испортить ваши планы.
Из своего окна в салоне вы слышите звук волн, корабль мирно раскачиваясь на них, и вы помните свой любимый роман о море - «Моби Дик». Хотя сюжет далеко не прост, со многими лирическими отступлениями и философскими размышлениями, вы, как и все остальные, связываете эту книгу, прежде всего, с самим Моби Диком - белым китом.
«Хм ... белый кит ...» Здесь вы помните, что во время долгого путешествия вы хотели работать на доке.
Nginx (произносится «Engine-X»)-это обратный прокси-сервер с открытым исходным кодом для HTTP, HTTPS и т. Д. NGINX также используется в качестве балансировщика нагрузки, веб-сервера и для кэширования HTTP. Проект NGINX фокусируется на высокой параллелизме, высокой производительности и низком использовании памяти.
Nginx имеет один основной процесс и несколько рабочих процессов. Основная задача основного процесса - прочитать и проверить конфигурацию и управление рабочими процессами. Рабочие процессы выполняют фактическую обработку запросов.
Как работают Nginx и его модули, определяется в файле конфигурации. По умолчанию файл конфигурации называется nginx.conf
Контейнер - это новый «исполняемый файл», который включает в себя все зависимости, которые нуждаются в продукте.
Основным преимуществом контейнеризации является изоляция зависимостей и единственная простая точка запуска программного обеспечения.
Основные термины:
Docker - это платформа, которая предназначена для разработки, развертывания и запуска приложений в контейнерах. Docker -это стандартный инструмент «de-facto» в отрасли, но он не первый или последний среди технологий контейнеризации.
Предвестники контейнеров Docker были виртуальными машинами. Виртуальная машина, такая как контейнер, изолирует приложение и ее зависимости от внешней среды. Тем не менее, контейнеры Docker имеют преимущества перед виртуальными машинами. Например, их очень легко переносить, потреблять меньше ресурсов, запустить и работать быстрее.
Изображение Docker состоит из слоев. Каждый слой описывает некоторые изменения, которые будут выполнены для данных на работающем контейнере. Структура связей между слоями является иерархической. Существует базовый слой, на котором другие слои «наложены». DockerFile используется для создания изображения. Каждая инструкция в нем создает новый слой.
Докл - это инструмент проверки безопасности контейнера, который можно использовать для поиска уязвимостей.
Ключевые функции и преимущества доклера :
Docker Compose - это инструмент для выполнения задач, связанных с развертыванием проектов. Docker Compose может быть полезным, если несколько сервисов используются для поддержания работы проекта.
Docker Compose используется для одновременного управления несколькими контейнерами, которые являются частью приложения. Этот инструмент предлагает те же функции, что и Docker, но позволяет работать с более сложными распределенными приложениями, например, микросервисами.
В результате работы вы должны предоставить отчет о первых двух задачах. Каждая часть задачи описывает, что следует добавить в отчет после его завершения. Это могут быть ответы на вопросы, скриншоты и т. Д.
В результате третьей задачи вы должны предоставить исходные файлы для запуска веб -сервера.
В результате четвертого и пятого задач вы должны предоставить Dockerfiles.
В результате шестой задачи вы должны предоставить файл docker-compose.yml и Dockerfiles, необходимые для его запуска (если не предоставлены ранее).
В качестве конечной цели вашей маленькой практики вы сразу же выбрали, чтобы написать изображение Docker для вашего собственного веб-сервера, поэтому сначала вам нужно справиться с готовым изображением Docker для сервера. Вы выбрали довольно простой Nginx .
== Задача ==
docker pull . docker images . docker run -d [image_id|repository] . docker ps . docker inspect [container_id|container_name] . docker stop [container_id|container_name] . docker ps . docker restart [container_id|container_name] . Примечание. Не загружайте тяжелые файлы (> 10 МБ) в GIT.
Изображение Docker и контейнер готовы. Теперь мы можем посмотреть на конфигурацию Nginx и статус отображения страницы.
== Задача ==
docker cp . docker rmi [image_id|repository] не удаляя контейнер сначала. Пришло время отдохнуть от докера, чтобы подготовиться к последнему этапу. Пришло время написать свой собственный сервер.
== Задача ==
Hello World! Полем Теперь все готово. Вы можете начать писать изображение Docker для созданного сервера.
== Задача ==
При написании изображения Docker Избегайте нескольких звонков инструкций по запуску
Nginx может быть установлен внутри самого докера, или вы можете использовать готовое изображение с Nginx в качестве основания.
docker build , указав имя и тег. docker images , что все построено правильно. *Если все сделано правильно, после сохранения файла и перезапуска контейнера, файл конфигурации внутри изображения Docker должен обновляться без каких -либо дополнительных шагов
Как только вы написали изображение, никогда не будет плохой идеей проверить его на безопасность.
== Задача ==
dockle [image_id|repository] . Там вы закончили свою разминку. Подождите минутку ... почему бы не попробовать поэкспериментировать с развертыванием проекта, состоящего из нескольких изображений Docker одновременно?
== Задача ==
docker-compose build и docker-compose up . Нажмите здесь , чтобы оставить отзыв о проекте . Команда продукта действительно пытается сделать ваш образовательный опыт лучше.