Как обновить изображение Docker

Как обновить изображение докеры при обновлении официального репозитория?

Как обновить пользовательские изображения при изменении DockerFile, или Dockerfile содержит информацию, зависящую от времени?

Лучше ли вы создавать новые изображения или перестраивать их?

Какой лучший способ перестроить существующее изображение?

Какой лучший способ отличить несколько построек одного и того же изображения?

Ответ 1

Как обновить изображение докеры при обновлении официального репозитория?

Если вы используете Docker Hub для создания автоматической сборки, вы можете добавить ссылку Repository Link, которая будет восстанавливать ваше репо, когда связанный обновления репо.

Если вы хотите сами создавать сборки, вы можете создать хакерское обходное решение, чтобы получить уведомление по ссылке, как указано выше, и перестроить тривиальное репо, а затем использовать Web Hook, чтобы уведомить вашу систему сборки об изменениях.

Как обновить пользовательские изображения при изменении DockerFile, или Dockerfile содержит информацию, зависящую от времени?

Если вы используете Docker Hub для автоматической сборки, изменения в исходном репозитории BitBucket или GitHub, включая изменения Dockerfile, вызовут новую сборку.

Если вы сами создаете изображения, просто введите docker build . в каталог, в котором находится ваш файл Docker. Вы можете использовать --no-cache, чтобы принудительно полностью восстановить

Лучше ли вы создавать новые изображения или перестраивать их?

Это зависит от того, кто использует ваши изображения. Когда вы build, результатом будет всегда новое изображение, но как вы tag результат может сделать его похожим на замену старого изображения или чего-то нового.

Какой лучший способ отличить несколько построек одного и того же изображения?

Используйте функцию :tag в имени, например

ubuntu:latest
ubuntu:12.04
ubuntu:14.04
...

см. https://registry.hub.docker.com/_/ubuntu/ для получения полного списка всех вариантов изображения "ubuntu". См. Документацию tag для полного формата для имени дружественного изображения. Все теги и имена являются псевдонимами для имени канонического изображения, эта длинная строка UUID, когда вы запускаете docker images --no-trunc.