УВІЙТИ
    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 та інших додатків на вашому хостовому сервері. 
     

    Також пропонуємо вам інші корисні статті: