Docker Swarm · 4 min read · Feb 07, 2026

Как настроить и сконфигурировать кластер Docker Swarm на Ubuntu

Docker Swarm — это инструмент, который позволяет развернуть кластер Docker Hosts. Это родной инструмент кластеризации, предоставляемый Docker, который обеспечивает высокую доступность и высокую производительность для вашего приложения, распределяя его по всем узлам внутри кластера swarm.

В этом руководстве мы покажем вам пошагово, как создать кластер Swarm, используя Ubuntu 16.04. Мы создадим кластер swarm, используя 2 сервера Ubuntu, 1 серверный узел в качестве менеджера и 1 другой в качестве рабочего. А затем мы попытаемся развернуть простой сервис Nginx в кластер swarm.

Предварительные требования

  • 2 или более - Ubuntu 16.04 Server - менеджер     132.92.41.4
  • worker01   132.92.41.5
  • Привилегии root

Что мы будем делать?

  1. Настроить узлы
  2. Установить Docker-ce
  3. Инициализация Docker Swarm
  4. Развертывание первого сервиса в кластер

Шаг 1 - Настроить узлы

Перед установкой любых пакетов для кластера swarm мы настроим файл hosts на обоих серверах.

Запустите команды ниже на всех серверах, ‘менеджер‘ и ‘worker01’.

Отредактируйте файл ‘/etc/hosts’, используя редактор vim.

vim /etc/hosts

Добавьте следующую конфигурацию в конец файла.

132.92.41.4    менеджер  
132.92.41.5    worker01

Сохраните и выйдите.

Теперь пинг всех узлов, используя ‘hostname’, вместо использования IP-адреса.

ping -c 3 менеджер  
ping -c 3 worker01

И убедитесь, что это работает на всех узлах.

Настроить узлы

Шаг 2 - Установить Docker-ce

Чтобы создать кластер swarm, нам нужно установить docker на всех серверных узлах. На этом этапе мы установим Docker-ce Community Edition на обоих серверах: менеджер и worker01.

Установите зависимости Docker-ce, используя команду apt ниже.

sudo apt install apt-transport-https software-properties-common ca-certificates -y

Теперь добавьте ключ Docker и репозиторий Docker-ce на наши серверы.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -  
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list

Обновите репозиторий и установите пакеты Docker-ce, используя команду apt install ниже.

sudo apt update  
sudo apt install docker-ce -y

После завершения установки запустите службу docker и включите ее, чтобы она запускалась каждый раз при загрузке системы.

systemctl start docker  
systemctl enable docker

Docker-ce теперь установлен на наших серверных узлах.

Далее мы настроим docker для работы как обычный пользователь или пользователь без прав root.

Создайте нового пользователя с именем ‘mohammad’ и добавьте его в группу ‘docker’.

useradd -m -s /bin/bash mohammad  
sudo usermod -aG docker mohammad

Теперь войдите в пользователя ‘mohammad’ и выполните команду docker hello-world, как показано ниже.

su - mohammad  
docker run hello-world

И вы получите hello world от docker, как показано ниже.

Установить Docker-ce

Шаг 3 - Создать кластер Swarm

На этом этапе мы создадим кластер Swarm наших узлов. И для того, чтобы создать узлы кластера swarm, нам нужно инициализировать режим swarm на узле ‘менеджер‘, а затем присоединить узел ‘worker01’ к кластеру.

Инициализируйте режим Docker Swarm, запустив команду docker ниже на узле ‘менеджер‘.

docker swarm init --advertise-addr 132.92.41.4

И вы получите результат, как показано ниже.

Вы увидите, что ‘join-token’ был сгенерирован узлом ‘менеджер‘.

Далее нам нужно добавить узел ‘worker01’ в кластер ‘менеджер‘. И для этого нам нужен ‘join-token’ от узла кластера ‘менеджер‘, поэтому убедитесь, что вы записали его.

Запустите команду docker swarm join на узле ‘worker01’.

docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377

Теперь вы получите результат, как показано ниже.

Узел ‘worker01’ был присоединен к кластеру.

Проверьте это, запустив следующую команду на узле ‘менеджер‘.

docker node ls

Теперь вы видите, что узел ‘worker01’ был присоединен к кластеру swarm.

Кластер Swarm был создан.

Шаг 4 - Развертывание первого сервиса в кластер

На этом этапе мы создадим и развернем наш первый сервис в кластер swarm. Мы хотим создать новый сервис веб-сервера Nginx, который будет работать на стандартном http-порту 80, а затем открыть его на порту 8080 на хост-сервере и затем попытаться воспроизвести сервис nginx внутри кластера swarm.

Создать сервис

Создайте новый сервис Nginx с именем ‘my-web’ и откройте HTTP-порт контейнера на порт 8080 на хосте.

docker service create --name my-web --publish 8080:80 nginx:1.13-alpine

И когда он будет создан, проверьте, используя команду docker service ниже.

docker service ls

И вы получите результат, как показано ниже.

Сервис Nginx был создан и развернут в кластер swarm как сервис с именем ‘my-web’, он основан на Nginx Alpine Linux, открывает HTTP-порт контейнерного сервиса на порт ‘8080’ на хосте и имеет только 1 реплику.

Реплики и масштабирование сервиса

Теперь мы создадим реплики для сервиса ‘my-web’. Мы создадим 2 реплики сервиса ‘my-web’, чтобы сервис был доступен на узлах ‘менеджер‘ и ‘worker01’.

Чтобы воспроизвести сервис ‘my-web’, выполните следующую команду.

docker service scale my-web=2

И после завершения проверьте снова, используя команду docker service.

docker service ls

И теперь сервер имеет 2 реплики.

Реплики и масштабирование сервиса

Откройте веб-браузер и введите IP-адрес узла менеджера с портом 8080.

http://manager:8080/

И вы получите страницу по умолчанию Nginx.

Ниже приведен результат с узла ‘worker01’.

http://worker01:8080/

Кластер Swarm был создан, и сервис Nginx был успешно развернут в нашем кластере Swarm.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.