Você atingiu claramente um nível de complexidade que você não conseguirá usar com docker
normal.
Neste ponto, você precisa começar a usar uma ferramenta de abstração de nível superior para gerenciar seus recursos. As escolhas óbvias são:
Você não fornece detalhes suficientes sobre a plataforma subjacente que ajudaria na escolha de um sobre o outro. Minha preferência pessoal é o Kubernetes, porque posso abstrair de praticamente qualquer plataforma, e posso abstrair ainda mais para fornecer recursos de nível superior usando o OpenShift ou Tectônico .
O Kubernetes opera em contêineres usando o pod como a unidade de abstração mínima. Isso permite que um cluster do Kubernetes orquestre e direcione o tráfego para pods com base em diferentes probes.
Na prática, isso significa que você pode executar implantações de novos contêineres sem tempo de inatividade, fazer com que o Kubernetes crie novos contêineres, caso a sonda retorne falhas, e até mesmo reverta a implantação (estratégia azul / verde).
Isso apenas arranha a superfície do que o Kubernetes pode fazer. Se você estiver interessado, o projeto tem uma documentação muito boa .