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
Что мы будем делать?
- Настроить узлы
- Установить Docker-ce
- Инициализация Docker Swarm
- Развертывание первого сервиса в кластер
Шаг 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 dockerDocker-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, как показано ниже.

Шаг 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.
И вы получите страницу по умолчанию Nginx.
Ниже приведен результат с узла ‘worker01’.
Кластер Swarm был создан, и сервис Nginx был успешно развернут в нашем кластере Swarm.
Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.