Создание минималистичного образа docker
Образ docker может быть создан без базового образа. Для этого нужно только само приложение, которое может быть выполнено в вашей системе.
Для создания образа "с нуля" нужно обеспечить наличие бинарного файла (файлов) приложения, которое нужно поместить в образ. При этом, бинарные файлы либо должны быть собраны путем статической линковки со всеми необходимыми зависимостями, либо все файлы таких зависимостей должны быть также включены в контейнер.
Ниже рассмотрим создание классического приложения на языке Си, отображающее на экране "Hello, World!".
Просмотр зависимостей
Можно посмотреть список файлов, от которых зависит данный бинарный файл командой:
Исходный код:
Скомпилируйте приложение (обратите внимание на опцию статической линковки):
Создайте Dockerfile следующего содержания:
Это простейший сценарий создания образа контейнера, который не требует никаких базовых образов, добавляет в корень файловой системы контейнера файл hello и затем исполняет его. Здесь становится понятно, зачем была нужна статическая линковска - без нее в файловой системе контейнера не существовало бы необходимых файлов зависимостей.
Создайте образ:
Запустите контейнер из созданного образа:
Очистить систему можно одной строкой: