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

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