Then I noticed some downtime. They will start new container one at the time and stop old container one at the time. Then problem is that it takes a few minutes to download new image and it takes time for web server to run.
Você precisa definir uma verificação de integridade para sua imagem / contêiner. Sem isso, o docker não sabe quando seu aplicativo está pronto para atender a solicitações e enviará solicitações para o contêiner "ainda não está pronto" e removerá o contêiner de execução restante logo após a substituição do primeiro.
O healthcheck define um comando para executar dentro de seu contêiner para identificar se seu aplicativo está íntegro. Consulte esta documentação para saber como configurar a verificação de integridade dentro de sua imagem.