Запуск примерного Compose-проекта
На этом шаге мы научимся запускать примерный Compose-проект. Перед использованием Docker Compose необходимо его установить. Поскольку в виртуальной среде LabEx Docker Compose не предустановлен, мы сначала выполним его установку.
Мы скачаем бинарный файл 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.
docker-compose --version
В консоли должна отобразиться информация о версии, что подтвердит корректную установку Docker Compose.
Теперь создадим простой Compose-проект. Создадим директорию для проекта и файл docker-compose.yml
, который будет определять сервисы нашего приложения.
Сначала создадим директорию с именем my-compose-app
.
mkdir ~/project/my-compose-app
cd ~/project/my-compose-app
Затем создадим файл docker-compose.yml
в директории ~/project/my-compose-app
с помощью редактора nano
.
nano docker-compose.yml
Добавим следующее содержимое в файл docker-compose.yml
. Этот файл определяет один сервис web
, использующий образ nginx
.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Сохраним файл и выйдем из редактора nano
(нажмите Ctrl + X
, затем Y
, затем Enter
).
Перед запуском сервиса убедимся, что образ nginx:latest
доступен локально. Мы можем загрузить его с помощью команды docker pull
.
docker pull nginx:latest
Теперь, когда у нас есть файл docker-compose.yml
и необходимый образ, мы можем запустить Compose-проект командой docker-compose up
. Флаг -d
запускает сервисы в detached mode (фоновом режиме).
docker-compose up -d
Эта команда создаст и запустит сервис web
, как определено в файле docker-compose.yml
. В выводе будет указано, что сервис создаётся и запускается.
Чтобы убедиться, что сервис работает, можно использовать команду docker ps
для вывода списка запущенных контейнеров. Должен отобразиться контейнер для сервиса web
.
docker ps
Также можно получить доступ к веб-серверу Nginx, открыв браузер и перейдя по IP-адресу вашей виртуальной машины LabEx. Поскольку мы сопоставили 80-й порт контейнера с 80-м портом хоста, вы должны увидеть стандартную приветственную страницу Nginx.