LINUX.ORG.RU
ФорумAdmin

Создание образа docker

 ,


1

1

Добрый день! Дано: Astra Linux 1.7,

docker 1.5-2  all transitional package
docker-buildx 0.10.5astra1 amd64 Docker CLI plugin for extended build capabilities with BuildKit
docker.io 24.0.2+astra16 amd64 Linux container runtime

С помощью команд скачала и сохранила простейший образ для обучения:

docker pull hello-world
docker images
docker save hello-world > hworld.tar

Вижу, что в tar архиве расположен исполняемый файл, при запуске которого в текущей системе отображается «Hello World» Вопрос - как сделать свой собственный образ с нуля, если есть только исполняемый файл?

https://www.dmosk.ru/miniinstruktions.php?mini=docker-base-image В этой статье написано, что из репозитория ставится система. А как простейший образ без репозитория сделать?

Перемещено hobbit из general



Последнее исправление: hobbit (всего исправлений: 2)

В этой статье написано, что из репозитория ставится система. А как простейший образ без репозитория сделать?

Мне кажется ты не понял сути докера. А как ты собрался собрать образ без системы? так не бывает. Образ делается на базе какой либо ОС. Берешь любой готовый базовый образ чистой системы типо альпайна или убунты (на свой вкус) и добавляешь свой бинарь куда тебе надо ну и настрой запуск через энтрипоинт или cmd если необходимо (но для этого придется почитать что это такое тут https://docs.docker.com/reference/dockerfile/#entrypoint)

Noob_Linux ★★★★
()

С помощью команд скачала и сохранила простейший образ для обучения docker pull hello-world docker images docker save hello-world > hworld.tar

Тупое скачивание готовых образов ничему не обучает!
Вам надо читать про Dokerfile и команду doker build.
Вот, для примера, статья - https://habr.com/ru/articles/713942/
и вот - https://habr.com/ru/companies/ruvds/articles/439980/

sigurd ★★★★★
()
Последнее исправление: sigurd (всего исправлений: 1)

А как простейший образ без репозитория сделать?

В общем случае никак, ты хочешь странного

Но image из одной программы в принципе можно сделать, если она написана на go. Т.к. программы на go это монстры (на десятки и сотни мегабайт), в которых входят вообще все используемые библиотеки

Теоретически, наверное можно в си сделать статическую сборку со всеми используемыми библиотеками, но сомневаюсь

router ★★★★★
()
Ответ на: комментарий от Noob_Linux

Не надо путать контейнер с виртуалкой. Докерный контейнер — это всего лишь процесс, запущенный в несистемных пространствах имён. И всё. Другой вопрос — что образы докера удобно использовать для скриптоты и динамически связанных программ, чтобы помоечку всю с собой носить, а эти сборки удобнее делать на базе настоящего дистрибутива линукса. Но это вовсе не обязательно.

ugoday ★★★★★
()
Ответ на: комментарий от kostik87

Если прочитать внимательно, то в static от дебиана там только

    ca-certificates
    A /etc/passwd entry for a root user
    A /tmp directory
    tzdata

В base к этому списку добавляется

glibc
libssl

размер образа 1.99Mb для static и 20,7Mb для base:

REPOSITORY                          TAG       IMAGE ID       CREATED   SIZE
gcr.io/distroless/base-debian12     latest    7273f3276b21   N/A       20.7MB
gcr.io/distroless/static-debian12   latest    58f2645e2d57   N/A       1.99MB

Сравните с обычным образом debian весом 117MB

bieming
()
28 июля 2025 г.

Человек все правильно написал, я его понял с полуслова. Насколько я понимаю, то докер контейнер по умолчанию имеет какую-то урезанную версию ос-linux поэтому там могут запускаться некоторые исполняемые файлы. Либо если тебе необходима другая ОС или другая версия linux то ты добавляешь ее готовый образ , но насколько я понял речь идёт о том как научиться делать свои собственные образы таких ОС, например существующий образ win95 имеет размер 500МЬ что являється дискомфортом, т.е. что бы запустить свой exe-шник в контейнере мне нужно туда впихнуть 500мб винды, хотя инсталляции iso win95 имеют размер 25мб, я в свое далёкое время 1996 году впихивал винду95 на винчестер 20МБ спомощью системы архивации дисков которая в итоге давала до 40мб. Но я бы согласился и на 40мб контейнера, если научиться создавать самостоятельно образы ОС в том к-ве объема который тебе нужен, а не тот который кто то сделал на 500мб. Вопрос звучит так, как сделать свой образ ОС win95 имея например инсталляцию iso на 25Мb?

anonymous
()
Ответ на: комментарий от anonymous

я его понял с полуслова. Насколько я понимаю

Не надо гадать за ТСа, если ему будет нужно, он всё же вернётся и пояснит, что хочет сделать.

UPD. А, бже, это некротред, никто никуда не придёт

Вопрос звучит так, как сделать свой образ ОС win95 имея например инсталляцию iso на 25Мb?

задорной травы ты там дунул. Просто в докере - никак. Либо подключать бэкенд полноценной виртуализации и там запускать как полноценную ос, либо тянуть рантайм вайна и в нём запускать твой экзешник.

mega_venik ★★★
()
Последнее исправление: mega_venik (всего исправлений: 1)