opened image

Как установить Nginx в Docker-Compose

В этой статье мы рассмотрим, как установить Nginx с помощью Docker Compose на хостовом сервере и настроить его таким образом, чтобы можно было просматривать файл index.html в браузере на порту 9999.


Установка Docker и Docker Compose
 

Прежде чем начать, убедитесь, что у вас установлены Docker и Docker Compose на вашем хостовом сервере. Если они еще не установлены, вы можете установить их, следуя инструкциям Docker для Centos 7 и для Ubuntu 20.04 и Docker Compose.


Создание файла index.html на хостовом сервере

Первым шагом необходимо создать файл index.html на хостовом сервере. Мы будем использовать его для демонстрации Nginx, когда мы его запустим в контейнере Docker. Вы можете создать этот файл в любом месте на хостовом сервере, где у вас есть права доступа для записи. В этом примере мы создадим его в директории /var/www/html.

Выполните следующую команду, чтобы создать директорию и перейти в нее:
 

mkdir -p /var/www/html && cd /var/www/html


Создадим файл index.html

 

 

vim index.html

 


Вставим в него ниже приведенный код:

 

 

 

<!DOCTYPE html>
<html>
<head>
    <title>Hello, Nginx!</title>
</head>
<body>
    <h1>Hello, Nginx!</h1>
    <p>This is a test page served by Nginx in a Docker container.</p>
</body>
</html>

 


Сохраните файл в любом удобном для вас месте на хостовом сервере. В данном примере мы сохраним файл в директории /var/www/html.

 


Создание файла docker-compose.yaml


Нам нужно создать файл docker-compose.yaml, в котором определяется контейнер Nginx и его конфигурация. Этот файл можно создать в любом месте на хостовом сервере, где у вас есть права доступа для записи. В этом примере мы создадим его в директории /opt/nginx.

Выполните следующую команду, чтобы создать директорию и файл:

 

 

 

mkdir -p /opt/nginx && cd /opt/nginx
vim /opt/nginx/docker-compose.yaml


Добавьте следующее содержимое в файл docker-compose.yaml:

 

 

version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - "9999:80"
    volumes:
      - /var/www/html:/usr/share/nginx/html
    restart: always

 


 

Где:

services - определяет список сервисов, которые мы хотим запустить с помощью Docker Compose.
nginx  - является именем сервиса, который мы хотим запустить.
image - определяет Docker образ, который мы хотим использовать. В данном случае мы используем официальный образ Nginx, который помечен тегом latest.
ports - определяет маппинг портов между хостовой машиной и контейнером. В данном случае мы маппим порт 9999 на хостовой машине на порт 80 в контейнере.
volumes - определяет том, который мы хотим использовать для хранения данных внутри контейнера. В данном случае мы монтируем директорию /var/www/html на хостовой машине в директорию /usr/share/nginx/html в контейнере.
restart - определяет, должен ли Docker автоматически перезапускать контейнер, если он остановился. В данном случае мы указываем, что контейнер всегда должен перезапускаться.

 

 

 

Запуск Docker Compose
 

Теперь мы готовы запустить контейнер Nginx с помощью Docker Compose. Для этого выполните следующую команду из директории, где находится файл docker-compose.yaml:

 

 

docker-compose up -d

 



Эта команда запустит контейнер Nginx в фоновом режиме и выведет его ID.

Проверить запущен ли данный контейнер можно командой:

 

 

docker-compose ps

 



 

 

Проверка работы Nginx
 

Теперь мы можем проверить работу Nginx, открыв веб-браузер и перейдя на адрес http://<адрес хостового сервера>:9999. В нашем примере это будет http://IP:9999.
Если все настроено правильно, вы должны увидеть страницу "Hello, Nginx!".

 

 

Это все! Теперь вы можете использовать Docker Compose для управления контейнерами Nginx и других приложений на вашем хостовом сервере. 


Также предлагаем рассмотреть другие полезные статьи: