В этой статье мы рассмотрим, как установить 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 и других приложений на вашем хостовом сервере.
Также предлагаем рассмотреть другие полезные статьи:
- Список важливих команд для роботи з Docker-compose
- Как установить Nginx в Docker-Compose
- Как развернуть любую версию PHP в Docker-Compose