Обычно на сервере настраиваются автоматические обновления исправлений безопасности. Поэтому, если я использую MySQL 5.5 и выйдет новое исправление безопасности, Ubuntu Server применит обновление и перезапустит MySQL, чтобы автоматически защитить меня. Очевидно, это можно отключить, но это полезно для тех из нас, кто немного ленивый;)
Существует ли такая концепция внутри контейнера Docker? Если я использую MySQL в контейнере Docker, нужно ли постоянно останавливать контейнер, открывать в нем оболочку, а затем обновлять и обновлять MySQL?
Ответы:
Я не согласен с принятым ответом. Во-первых, вы должны проектировать свои контейнеры с учетом разделения состояний (в случае с MySQL это означает, что по крайней мере
/var/lib/mysql
идет в своем собственном объеме ). Во-вторых, вы должны определить стратегию апгрейдов; Современное состояние заключается в создании версионных образов для каждого набора обновлений apt-пакетов и их тестировании перед заменой тома данных с запущенного контейнера на новый. Это может включать либо простои, либо вообще отсутствовать, если вы используете что-то вроде hipache .Эта установка, хотя и более дорогая по сравнению с первоначальной настройкой, является той же самой, что используется компаниями с массовым использованием контейнеров, и будет дешевле в обслуживании с течением времени.
Кроме того, обновления пакетов могут в конечном итоге сломать ваши работающие контейнеры, поэтому применение их к работающим контейнерам не является наилучшей практикой, так как это не должно запускать устаревшее программное обеспечение.
источник
TL; DR : Если вы не создадите это в себе, этого не произойдет.
Эффективный способ сделать это - просто написать собственный стартовый скрипт для вашего контейнера, указанного
CMD
в вашемDockerfile
. В этом файле запуститеapt-get update && apt-get upgrade -qqy
перед запуском все, что вы запускаете.Затем у вас есть несколько способов обеспечить обновление до контейнера:
Это не самая простая вещь для оптимизации и автоматизации, но это возможно.
источник