2015-07-29 3 views
3

Допустим, у нас есть экземпляр образа докеры, работающий в производственной среде. Изображение содержит ОС Linux и файл jar приложения. В рамках выпуска исправления некоторые изменения в некоторых приложениях применяются в приложении jar. Могут ли эти изменения обновляться постепенно в производстве или нам нужно заменить весь образ? Если мы сможем создать приращение и обновить его, какие команды будут выполнять эти операции.Изображение Docker обновляется инкрементально в рабочей среде

В большой производственной среде, где есть огромное количество экземпляров докеров, и требует исправления, над головой будет перемещаться весь образ, а не инкремент/дельта.

ответ

2

Я бы не использовал изменение и совершил стратегию для изображений докеров в производственных условиях. Просто потому, что в конце вы не можете точно воспроизвести способ внесения изменений в изображения. Вы можете видеть только различия.

Я бы построил изображения в среде сборки (например, Дженкинс), используя Dockerfile s. Особенно - как вы упомянули JAR-файлы - когда вы используете maven для создания своего Java-приложения, вы также можете легко создать изображение докеров в одной и той же сборке, используя docker-maven-plugin. Таким образом, вы всегда сможете воспроизвести изображение в своей среде сборки.

Тогда, когда дело доходит до этапа развертывания, когда вам нужно развернуть на десятки серверов, вы не сделали бы это вручную, конечно. Вы бы автоматизировали этот шаг.

0

Согласно FAQ, вы можете произвести поэтапный просмотр изображений, похожих на git pull.

Версии. Docker включает git-подобные возможности для отслеживания последовательных версий контейнера, проверки различий между версиями, фиксации новых версий, откатывания назад и т. Д. История также включает в себя как сборку контейнера и кем, так что вы получаете полную прослеживаемость с производственного сервера вплоть до разработчика. Docker также реализует инкрементные загрузки и загрузки, похожие на git pull, поэтому новые версии контейнера могут быть переданы путем отправки diff.

Насколько, как это сделать, я думаю, что команда docker pull будет путь, так как она пропускает уже загруженные слои и только получает новые.

Смежные вопросы