Изображения Docker хранятся в виде слоев файловой системы. Каждая команда в Dockerfile создает слой. Вы также можете создавать слои с помощью docker commit
командной строки после внесения некоторых изменений ( docker run
возможно, через ).
Эти слои хранятся по умолчанию в /var/lib/docker
. Хотя вы можете (теоретически) выбрать файлы оттуда и установить их на другом сервере Docker, вероятно, плохая идея поиграть с внутренним представлением, используемым Docker.
Когда вы нажимаете на изображение, эти слои отправляются в реестр (по умолчанию реестр концентраторов докеров ... если только вы не пометите свое изображение другим префиксом реестра) и сохраняются там. При нажатии идентификатор слоя используется, чтобы проверить, есть ли у вас слой локально или его нужно загрузить. Вы можете использовать, docker history
чтобы посмотреть, какие слои (другие изображения) используются (и, в некоторой степени, какая команда создала слой).
Что касается параметров обмена изображениями без отправки в реестр концентратора докера, ваши лучшие варианты:
docker save
изображение или docker export
контейнер. Это выведет файл tar на стандартный вывод, так что вы захотите сделать что-то вроде docker save 'dockerizeit/agent' > dk.agent.latest.tar
. Тогда вы можете использовать docker load
или docker import
в другом хосте.
Разместите свой личный реестр. - Устаревший, см. Комментарии. См. Изображение реестра Docker . Мы создали реестр с поддержкой s3, который вы можете запускать и останавливать по мере необходимости (все состояния сохраняются в корзине s3 по вашему выбору), что тривиально для установки. Это также интересный способ наблюдения за тем, что происходит при нажатии на реестр
Используйте другой реестр, такой как quay.io (я лично не пробовал), хотя все проблемы, которые у вас есть с концентратором док- станции, вероятно, применимы и здесь.