Вы можете запустить docker build
, пока старый контейнер все еще работает, и ваше время простоя ограничено периодом переключения.
Может быть полезно по нескольким причинам установить балансировщик нагрузки впередвашего контейнера.В зависимости от вашего приложения это может быть «тупой» балансировщик нагрузки, такой как HAProxy, или полноценный веб-сервер, такой как nginx, или что-то, что ваш облачный провайдер делает доступным.Это позволяет одновременно запускать несколько копий приложения, возможно, на разных хостах (это помогает для масштабирования и надежности).В этом случае последовательность становится такой:
docker build
новое изображение docker run
it - Присоедините его к балансировщику нагрузки (теперь трафик идет на обастарые и новые контейнеры)
- Проверка правильности работы нового контейнера
- Отсоединение старого контейнера от балансировщика нагрузки
docker stop && docker rm
старый контейнер
Если вы не возражаете против более тяжелой инфраструктуры, эта последовательность в основном именно то, что происходит, когда вы изменяете тег изображения в объекте развертывания Kubernetes, но принятие Kubernetes является чем-то существенным.