Развёртывание сервисов в Swarm
Развёртывайте и масштабируйте контейнеризированные приложения как сервисы в кластере Swarm, управляя их жизненным циклом.
«Развёртывание сервисов в Swarm» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Что такое сервис Docker Swarm?
В Docker Swarm сервис — это описание того, как вы хотите запускать контейнеризированное приложение в кластере.
Вместо запуска отдельных контейнеров вы определяете сервис и сообщаете Swarm: «Я хочу запустить X экземпляров этого образа на этих портах с такими настройками».
Затем Swarm обеспечивает сохранение желаемого состояния, автоматически перезапуская контейнеры в случае сбоя.

Сервисы и контейнеры
Представьте это так:
- Контейнер — один экземпляр приложения.
- Сервис — описание запуска одного или нескольких одинаковых контейнеров (называемых задачами) в Swarm.
Сервисы обеспечивают высокую доступность и масштабируемость, распределяя задачи и автоматически обрабатывая сбои.
Развёртывание первого сервиса
Команда docker service create позволяет развёртывать приложения в виде сервисов в кластере Swarm. Создадим простой веб-сервер Nginx в виде сервиса.
Попробуйте выполнить этот пример:
docker service create \
--name my-web-app \
-p 80:80 \
--replicas 1 \
nginxКак создаётся сервис
Разберём использованную команду:
--name my-web-app: задаёт сервису запоминающееся имя.-p 80:80: сопоставляет порт 80 на узлах Swarm с портом 80 внутри контейнера.--replicas 1: указывает Swarm поддерживать один запущенный экземпляр (задачу) этого сервиса.nginx: определяет образ Docker, который следует использовать для задач сервиса.
Проверка сервисов
После создания сервиса необходимо проверить его состояние и просмотреть запущенные задачи. Используйте следующие команды:
docker service ls: выводит список всех сервисов в Swarm.docker service ps <service_name>: показывает отдельные задачи (контейнеры), связанные с сервисом.
docker service ls
docker service ps my-web-appМасштабирование сервиса вверх
Одно из ключевых преимуществ Docker Swarm — простое масштабирование. С помощью одной команды можно увеличить число запущенных экземпляров (реплик) сервиса.
Увеличим количество реплик my-web-app до трёх:
docker service scale my-web-app=3Масштабирование сервиса вниз
С таким же успехом можно уменьшить масштаб сервиса, чтобы сократить использование ресурсов или управлять трафиком. Swarm корректно остановит лишние контейнеры, продолжив работу остальных.
Уменьшим количество реплик my-web-app обратно до одной:
docker service scale my-web-app=1Обновление сервиса
Когда необходимо развернуть новую версию приложения или изменить настройки сервиса, команда docker service update выполняет поэтапное обновление. Swarm обновляет задачи по одной, благодаря чему приложение остаётся доступным.
Обновим наш сервис Nginx до определённой версии:
docker service update --image nginx:1.25 my-web-appУдаление сервиса
Если сервис больше не нужен, его можно удалить из Swarm. Это остановит все связанные задачи и удалит описание сервиса из кластера.
Чтобы удалить сервис нашего веб-приложения:
docker service rm my-web-appПроверка управления сервисами
У вас есть сервис с именем my-backend, запущенный с 3 репликами и использующий образ my-backend:v1. Необходимо обновить его, чтобы он использовал новый образ my-backend:v2, а также увеличить количество реплик до 5.
Повторение: сервисы Swarm
Отличная работа! Вы изучили основные сведения о развёртывании приложений в виде сервисов и управлении ими в Docker Swarm.
- Сервисы определяют желаемое состояние контейнеризированных приложений.
- Вы научились создавать сервисы с помощью
docker service create. - Мы рассмотрели проверку, масштабирование (
docker service scale) и обновление (docker service update) сервисов. - Наконец, вы можете удалять сервисы с помощью
docker service rm.
Сервисы — основа создания масштабируемых и отказоустойчивых приложений в кластере Swarm!
Часто задаваемые вопросы
Урок «Развёртывание сервисов в Swarm» бесплатный?
Да — полный текст урока «Развёртывание сервисов в Swarm» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Развёртывание сервисов в Swarm»?
Развёртывайте и масштабируйте контейнеризированные приложения как сервисы в кластере Swarm, управляя их жизненным циклом. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?
Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Развёртывание сервисов в Swarm»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?
Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в Docker Swarm
- Настройка кластера Swarm
- Развёртывание сервисов в Swarm
- Масштабирование и обновления без простоя в Swarm