Подготовка простого проекта Docker Compose
На этом шаге мы подготовим простой проект Docker Compose. Поскольку Docker Compose не предустановлен в среде LabEx, сначала мы его установим. Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. С помощью Compose вы используете YAML-файл для настройки сервисов вашего приложения. Затем одной командой создаёте и запускаете все сервисы из конфигурации.
Сначала установим Docker Compose. Загрузим последнюю стабильную версию и сделаем её исполняемой.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
После установки проверим её, запросив версию.
docker-compose --version
В выводе должен отобразиться номер версии, подтверждающий корректную установку Docker Compose.
Теперь создадим простой проект Docker Compose. Создадим директорию для проекта и файл docker-compose.yml внутри неё. Этот файл определит простой веб-сервис с использованием образа nginx.
Перейдём в директорию проекта.
cd ~/project
Создадим новую директорию для проекта, например, my-web-app.
mkdir my-web-app
cd my-web-app
Теперь создадим файл docker-compose.yml в редакторе nano.
nano docker-compose.yml
Добавим следующее содержимое в файл docker-compose.yml:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Этот файл docker-compose.yml определяет один сервис с именем web. Он использует Docker-образ nginx:latest и пробрасывает 80-й порт хоста на 80-й порт контейнера.
Сохраним файл, нажав Ctrl + X, затем Y и Enter.
Теперь можно запустить сервисы, определённые в файле docker-compose.yml, командой docker-compose up. Флаг -d запускает контейнеры в detached mode (фоновом режиме).
docker-compose up -d
Эта команда загрузит образ nginx:latest (если он ещё не загружен) и запустит контейнер для сервиса web.
Статус запущенных контейнеров можно проверить командой docker ps.
docker ps
Должен отобразиться контейнер с именем my-web-app_web_1 (или аналогичным, в зависимости от имени директории), работающий и пробрасывающий 80-й порт.
Чтобы убедиться, что веб-сервер работает, можно использовать curl для обращения к нему.
curl http://localhost
В выводе должна отобразиться HTML-страница приветствия Nginx. Это подтверждает, что наш простой проект Docker Compose настроен и работает корректно.