Подготовка простого проекта 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 настроен и работает корректно.