Развертывание примерного стека
На этом этапе вы узнаете, как развернуть примерный стек с использованием Docker Compose. Docker Compose - это инструмент для определения и запуска много-контейнерных приложений Docker. С помощью Compose вы используете файл YAML для настройки служб (сервисов) вашего приложения. Затем одной командой вы создаете и запускаете все службы из вашей конфигурации.
Поскольку Docker Compose не предустановлен в среде LabEx, вам сначала нужно его установить. Мы установим Docker Compose версии 1.29.2, которая совместима с установленной версией Docker.
Сначала загрузите бинарный файл Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Эта команда загружает бинарный файл Docker Compose из официального репозитория на GitHub и сохраняет его в /usr/local/bin/docker-compose
. Части $(uname -s)
и $(uname -m)
автоматически определяют вашу операционную систему и архитектуру.
Далее, примените права на выполнение к бинарному файлу:
sudo chmod +x /usr/local/bin/docker-compose
Эта команда делает загруженный файл исполняемым.
Теперь, проверьте установку, проверив версию Docker Compose:
docker-compose --version
Вы должны увидеть вывод, похожий на docker-compose version 1.29.2, build 5becea4c
.
Теперь, когда Docker Compose установлен, давайте создадим простой файл Docker Compose для определения нашего стека. Мы создадим файл с именем docker-compose.yml
в директории ~/project
.
Используйте редактор nano
для создания и редактирования файла:
nano ~/project/docker-compose.yml
Вставьте следующее содержимое в файл docker-compose.yml
:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: alpine:latest
command: echo "Hello from Alpine"
Этот файл docker-compose.yml
определяет две службы (сервиса):
web
: Использует образ nginx:latest
и сопоставляет порт 80 на хосте с портом 80 в контейнере.
app
: Использует образ alpine:latest
и запускает простую команду echo
.
Сохраните файл, нажав Ctrl + S
, и выйдите из редактора, нажав Ctrl + X
.
Перед развертыванием стека давайте загрузим необходимые образы. Хотя Docker Compose может автоматически загружать образы во время развертывания, явно загрузить их заранее иногда может быть полезно.
Загрузите образ nginx:latest
:
docker pull nginx:latest
Загрузите образ alpine:latest
:
docker pull alpine:latest
Теперь, разверните стек с помощью команды docker-compose up
. Флаг -d
запускает контейнеры в отсоединенном режиме (в фоновом режиме).
Перейдите в директорию ~/project
, где вы создали файл docker-compose.yml
:
cd ~/project
Затем, запустите команду:
docker-compose up -d
Эта команда считывает файл docker-compose.yml
и создает и запускает определенные службы. Вы должны увидеть вывод, указывающий на создание и запуск служб web
и app
.
Чтобы убедиться, что службы работают, вы можете вывести список запущенных контейнеров:
docker ps
Вы должны увидеть два запущенных контейнера, один для службы web
(на основе nginx
) и один для службы app
(на основе alpine
).