Создание службы Docker Swarm
На этом шаге мы научимся создавать службу Docker Swarm. Служба Docker Swarm представляет собой набор задач, которые запускаются в кластере Swarm. Каждая задача является экземпляром контейнера. Службы - это центральное понятие Docker Swarm, которое позволяет определить, сколько реплик образа контейнера должно быть запущено и как они должны обновляться.
Перед созданием службы нам нужно инициализировать Docker Swarm. Поскольку мы работаем на одной виртуальной машине, мы инициализируем одноузловой Swarm.
Сначала инициализируем Swarm:
docker swarm init --advertise-addr 127.0.0.1
Вы должны увидеть вывод, указывающий, что Swarm был инициализирован и что текущий узел теперь является менеджером.
Теперь создадим службу с использованием образа nginx
. Мы назовем службу my-nginx
и укажем, что хотим запустить 3 реплики контейнера nginx
.
Сначала загрузим образ nginx
, чтобы убедиться, что он доступен локально:
docker pull nginx:latest
Теперь создадим службу:
docker service create --name my-nginx --replicas 3 nginx:latest
Эта команда создает новую службу с именем my-nginx
с 3 репликами, используя образ nginx:latest
. Docker Swarm автоматически распределит эти реплики по узлам в Swarm (в данном случае, только по нашему одному узлу).
Чтобы убедиться, что служба была создана и реплики запущены, вы можете вывести список служб:
docker service ls
Вы должны увидеть my-nginx
в списке с 3/3 запущенными репликами.
Вы также можете проверить задачи, связанные со службой:
docker service ps my-nginx
Эта команда покажет вам отдельные задачи (контейнеры), которые составляют службу my-nginx
, их текущее состояние и узел, на котором они запущены. Вы должны увидеть 3 задачи в состоянии Running
.