Поможет ли Docker swarm управлять контейнерами с определенными переменными среды?

По сути, мне нужно иметь возможность запускать контейнер с определенной переменной среды (идентификатор учетной записи). И мне нужно запустить несколько таких контейнеров (каждый с разными идентификаторами учетных записей).

Мне нужно иметь возможность запускать дополнительные контейнеры, не останавливая существующие контейнеры. Мне также нужно иметь возможность останавливать определенные контейнеры. Что-то вроде динамической конфигурации docker-compose.

Может ли Docker swarm помочь с вышеуказанной функциональностью? Есть ли альтернативные инструменты (может быть, Kubernetes?)?

В противном случае, если бы я обработал это с помощью docker-cli, я бы запустил контейнеры, используя docker run, передав соответствующую переменную среды, мне нужно было бы убедиться, что контейнер еще не существует с этой переменной среды, и перезапустить контейнер, если он существует .


person Chris Stryczynski    schedule 05.07.2017    source источник


Ответы (1)


Вы можете создать новую службу для каждого account ID и передать эту информацию как переменную среды. Вот пример:

docker service create --name service-for-account-123 --env accountId=123 imagename:latest 

Чтобы остановить контейнеры этой службы, вы можете масштабировать ее до нуля, например:

docker service scale service-for-account-123=0

Чтобы удалить все контейнеры, вы должны удалить службу:

docker service rm service-for-account-123
person Constantin Galbenu    schedule 05.07.2017
comment
Это на самом деле не отвечает на мой вопрос. - person Chris Stryczynski; 05.07.2017
comment
@ConstantinGalbenu У меня тот же вопрос, но вы, вероятно, правы, что рой не может быть подходящим инструментом. Есть ли причина, по которой я все равно должен создавать отдельные службы, а не просто запускать отдельные контейнеры? - person Snowball; 28.03.2018
comment
@Snowball, в чем конкретно твоя ситуация? - person Constantin Galbenu; 28.03.2018