Docker — контейнер для NGINX

Опубликовано: 3 Октября, 2022

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.