Генерация базового графа из compose-файла
На этом шаге вы научитесь генерировать базовое графическое представление вашего Docker Compose файла. Это полезно для визуализации взаимосвязей между сервисами, сетями и томами.
Сначала необходимо установить Docker Compose. Так как он не предустановлен в среде LabEx, мы установим его с помощью pip
.
sudo apt update
sudo apt install -y python3-pip
pip install docker-compose
После завершения установки вы можете проверить её, посмотрев версию Docker Compose.
docker-compose --version
Вы должны увидеть вывод, похожий на docker-compose version 1.29.2, build 5becea4c
.
Теперь создадим простой Docker Compose файл. Перейдите в директорию проекта и создайте файл docker-compose.yml
.
cd ~/project
nano docker-compose.yml
Добавьте следующее содержимое в файл docker-compose.yml
:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: ubuntu:latest
command: sleep infinity
Этот файл docker-compose.yml
определяет два сервиса: web
с образом nginx:latest
и app
с образом ubuntu:latest
. Сервис web
пробрасывает порт 80 хоста на порт 80 контейнера. Сервис app
просто выполняет команду sleep infinity
, чтобы контейнер продолжал работать.
Для генерации базового графа из этого compose-файла используется команда docker-compose config
с флагом --graph
. Эта команда анализирует compose-файл и выводит графическое представление в формате DOT.
docker-compose config --graph
Вывод будет на языке DOT, который используется для описания графов. Он покажет сервисы и их базовые связи. Например, вы можете увидеть что-то вроде:
digraph {
compound=true
"web" [label="web"]
"app" [label="app"]
"web" -> "app" [label="depends_on"]
}
Этот вывод в формате DOT представляет ориентированный граф, где web
и app
являются узлами, а стрелка от web
к app
помечена как "depends_on". Хотя в этом простом примере зависимости не определены явно, команда docker-compose config --graph
может выводить некоторые взаимосвязи.