У меня есть приложение, которое периодически дорабатывается и, затем, разворачивается на нескольких серверах. Упаковано приложение в Docker. При каждом обновлении приложения, при помощи Jenkins полностью удаляется старый образ и собирается новый.
Чтобы на каждом из серверов можно было просто скачать образ и запустить его (а не пересобирать заново), я развернул собственный Docker Registry (
https://docs.docker.com/registry ) и заливаю туда образ после пересборки.
Но, непонятен один момент. Как удалить из этого реестра старый образ перед тем как залить новый?
Если я просто делаю push с тем же именем, то количество занятого места на сервере, где крутится registry, увеличивается гигабайтами. Захламлять сервер хранением каких-то старых слоев\образов мне абсолютно не нужно. Мне нужно, чтобы просто хранился актуальный образ, который я могу скачать и развернуть в любой момент.
В документации внятного ответа я не нашел. Есть, конечно, API реестра
(
https://docs.docker.com/registry/spec/api ), в котором есть методы, похожие на удаление. Я пытался их вызывать (с последующим вызовом garbage-collect у registry-контейнера), но непонятно, что они вообще делают, так как после их вызова количество занятого места не уменьшается абсолютно.