Во-первых, если запустить сервис в этом контейнере статически (как Go application), вы могли бы COPY that app in a "scratch" container (который является empty one! Нет ОС на всех)
Во-вторых, приложение в контейнере может сделать только system calls к главному ядру, он не видит хозяин файловой системы (кроме того, что устанавливается по объему)
Основания изображения есть, чтобы гарантировать, что среда выполнение будет воспроизводимой: любой пользователь вызова (динамическое связывание) будет делать то же самое ОС (базовое изображение), даже если вы обновили или обновили свою базовая ОС.
И, наконец, базовое изображение «ubuntu» не совпадает с фактической ОС Ubuntu: это компактное подмножество (корневая файловая система без графической части X-11) и используется докере с помощью UnionFS, как один из слоев блоков диска внутри контейнера.