Docker swarm

Теги: docker 

Нативное решение [docker] для разворачивания и управления кластером контейнеров. Аналог, рекомендуемый для [fastapi] - [docker-swarm-rocks]

Create a swarm

ссылка

Если используется docker-machine, то подключиться к серваку по ssh (в примере manager1)

docker-machine ssh manager1

Инициализировать swarm (подробнее про команду)

docker swarm init --advertise-addr <MANAGER-IP>

Посмотреть - как все прошло:

docker info

Посмотреть инфу по нодам

docker node ls

Пример деплоя на сворм

Тут важно - связка с регистри (если используется). В примере связка с реигстри создается как сервис.

docker login registry.example.com

docker service create \
--with-registry-auth \
--name my_service \
registry.example.com/acme/my_image:latest

--with-registry-auth обеспечивает передачу об аутентификации в частном регистри в контекст сворма.

Деплой происходит с помозью docker stack depoy (ссылка на доку)

Вот так

docker stack deploy [OPTIONS] STACK

Или так с реигстри:

docker stack deploy --with-registry-auth STACK

Пример смотри тут

Swarm: Get Node Ip and Container IP from service

To get the node IP address you can use below command:


docker node inspect self --format '{{.Status.Addr}}'

To get the service IP address, Just add service-id in the end, like:


docker node inspect self --format '{{.Status.Addr}}' service-id

To get the container IP address, use:


docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container-id

Ссылка

Полезные материалы

[terraform] - это [digital-ocean] docker swarm manager