У цій статті ми розглянемо, як встановити 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 та інших додатків на вашому хостовому сервері.
Також пропонуємо вам інші корисні статті:
- List of important commands for working with Docker-compose
- How to install Nginx in Docker-Compose
- How to Deploy Any Version of PHP in Docker-Compose