Docker — контейнер для NGINX
Docker — это платформа с открытым исходным кодом, которая позволяет разработчикам легко разрабатывать, поставлять и запускать приложения. Он упаковывает приложение вместе с его зависимостями в изолированный виртуальный контейнер, который обычно работает в системе Linux и довольно легкий по сравнению с виртуальной машиной. Причина в том, что контейнер разделяет ядро ОС только с загруженными вместе с ним бинарными файлами/библиотеками. Чтобы узнать больше о докере, прочитайте Введение в докер.
В этой статье мы создадим и запустим докер-контейнер для NGINX. После этого мы разместим очень простой и небольшой сайт на контейнере Nginx.
Начнем с нескольких полезных понятий и определений.
Почему Docker-контейнеры?
Чтобы точно ответить на этот вопрос, мы должны спросить, какие проблемы они решают.
Одна из распространенных проблем, с которой сталкивается большинство разработчиков, заключается в том, что приложение запускается на одной машине, но не работает на другой. Это может быть связано с разными ОС, разными версиями библиотек, например, разработчик разработал приложение с использованием nodejs 14.1, но в облачном экземпляре установлен nodejs 9.2.
Это именно та проблема, которую решает Docker-контейнер, он упаковывает библиотеки приложения и все зависимости, предварительно созданные и готовые к выполнению. Он изолирован от других контейнеров и заставляет приложение чувствовать, что это единственное приложение, работающее в системе.
Многие организации в настоящее время переходят на контейнеры с виртуальных машин, поскольку контейнеры легкие и их легко обслуживать с помощью предоставляемого интерфейса командной строки.
Это также помогает легко адаптировать архитектуру микросервисов, отходя от традиционных монолитных систем. Другие преимущества включают масштабируемость, модификацию и обслуживание.
Образы Docker и Docker Hub
Образ Docker похож на моментальный снимок в среде виртуальных машин. Он записывает информацию о контейнере докеров в определенное время, например обо всех библиотеках, а также их конкретные версии, необходимые для приложения. Он неизменен, но его можно легко продублировать и поделиться с другими.
Образ обычно передается другим, чтобы позволить кому-то другому запускать приложение в той же среде, в которой оно должно работать, и образ содержит всю информацию об этой среде.
Концентратор Docker — это одна из таких платформ, где вы можете находить образы контейнеров и делиться ими с другими. Некоторые из наиболее распространенных образов предназначены для Nginx, Nodejs, Mongo DB и многих других.
Контейнер Docker для NGINX
Что такое NGiNX?
Когда пользователь запрашивает страницу с веб-сервера, веб-сервер принимает запрос и отправляет пользователю соответствующий ответ. Nginx может быть этим веб-сервером.
NGINX — это веб-сервер с открытым исходным кодом, который также используется для обратного прокси-сервера, балансировки нагрузки HTTP и прокси-сервера электронной почты. Он очень эффективно использует системные ресурсы и может обрабатывать огромное количество одновременных запросов, используя управляемую событиями и асинхронную архитектуру. Вот почему Nginx — отличный выбор для веб-сайтов с высокой нагрузкой, таких как электронная коммерция, облачное хранилище и поисковые системы.
Создайте докер-контейнер для NGINX
1. Загрузите официальный образ NGINX с Docker Hub с помощью следующей команды.
docker pull nginx:latest
Эта команда извлечет последнюю версию образа nginx, но вы можете заменить «последнюю» на нужную версию, и она будет загружена.
2. Подтвердите загрузку образа с помощью следующей команды.
docker images
Результат должен включать nginx вместе с другими изображениями, подобными этому.
3. Теперь запустите образ докера, используя следующую команду.
docker run -p 8000:80 nginx
Объяснение: с помощью приведенной выше команды вы запускаете сервер nginx, где -p — это флаг для сопоставления порта 8000 (локальный компьютер) с портом 80 в контейнере, поскольку 80 — это порт, который nginx обслуживает по умолчанию.
4. Проверьте установку, посетив локальный хост на порту 8000. Мы получим страницу по умолчанию для веб-сервера nginx следующим образом:
5. Чтобы остановить докер-контейнер, нажмите CTRL + C.
Разместите простой веб-сайт на NGINX, работающий в контейнере Docker.
Мы создадим два файла: index.html и aboutme.html, и разместим эти файлы в новом контейнере с сервером Nginx.
1. Файловая структура после создания двух файлов будет следующей:
2. Файлы index.html и aboutme.html содержат следующий код:
Индекс.html
HTML
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < meta http-equiv = "X-UA-Compatible" content = "IE=edge" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < title >NGINX Example</ title > </ head > < body > < h1 >HI!!</ h1 > < h3 >This is NGINX</ h3 > < footer > < a href = "./aboutme.html" >About ME</ a > </ footer > </ body > </ html > |
Объяснение: Эта веб-страница содержит два верхних колонтитула и нижний колонтитул со ссылкой на страницу обо мне .
aboutme.html
Объяснение: На этой странице показан заголовок h1 с текстом «Привет» и заголовок h3 с текстом «Это Ганеш Прасад».
3. Используйте следующую команду, чтобы создать контейнер Docker, который сопоставляет порт локальной машины с портом, который обслуживает nginx, и монтирует эти два файла в место в контейнере, которое nginx использует для размещения файлов ( /usr/share/nginx/html ).
docker run -d -p 8000:80 -v address_to_folder_with_files_locally:/usr/share/nginx/html --name my-nginx-server nginx
Объяснение:
- Флаг -d используется для запуска сервера в автономном режиме, то есть в фоновом режиме.
- -p используется для сопоставления локального порта с портом контейнера, где обслуживается сервер.
- -v используется для монтирования папки, содержащей файлы, в место в контейнере, которое Nginx использует для обслуживания веб-страниц.
- --name — указать имя контейнера, и, наконец, мы указываем имя образа.
Выход:
Посетите адрес localhost:8000 в своем браузере, и вы увидите следующее:
А нажав на ссылку « Обо мне», вы попадете на страницу обо мне.
Чтобы остановить контейнер докеров, вы можете использовать следующую команду.
docker stop my-nginx-server
Вывод:
В этой статье мы вкратце узнали о докере, контейнере, образах и концентраторе докеров. Затем мы создали контейнер докеров, используя официальный образ nginx из докер-хаба, и запустили его. Мы также узнали, как составить список всех образов в нашей системе и как остановить док-контейнер. После этого мы разместили небольшую веб-страницу на сервере nginx, работающем в контейнере Docker.