Эти образы Linux-дистрибутива полезны в качестве основы для дальнейших образов.Достаточно распространено создание образа на основе Ubuntu для какого-то конкретного приложения, например:
FROM ubuntu:18.04
RUN apt-get update && apt-get install ...
WORKDIR /app
COPY . ./
CMD ["./myapp"]
В той степени, в которой вам может понадобиться, скажем, клиентская библиотека PostgreSQL, получая ее через стандартный менеджер пакетов распространенияэто гораздо удобнее, чем создавать его из исходного кода.
Вы правы, что в принципе нет смысла напрямую запускать эти изображения.
(Вы также правы, что не делаете нужен дистрибутив: если у вас есть статически связанный двоичный файл, вы можете создать образ FROM scratch
, который содержит только самого приложения, а не общие тонкости, такие как системная библиотека C или оболочка.В основном я видел это только для приложений Go, в противном случае может быть очень сложно использовать и отлаживать, если вы не уверены в Docker.)