ВОЙТИ
    opened image

    В этой статье мы рассмотрим, как установить 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 и других приложений на вашем хостовом сервере.