Мне интересно, где именно хранятся образы Докера на моей локальной хост-машине. Могу ли я поделиться своим Docker-Image, не используя Docker-Hub
или, Dockerfile
кроме «настоящего» Docker-Image? И что именно происходит, когда я «толкаю» свой Docker-Image в Docker-Hub?
docker
docker-registry
yaquawa
источник
источник
Ответы:
Изображения 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 (я лично не пробовал), хотя все проблемы, которые у вас есть с концентратором док- станции, вероятно, применимы и здесь.
источник
docker save
: когда я помещаю изображение, полученное из другого изображения (скажем,python:2.7
в реестр), родительское изображение не нужно загружать более одного раза, если оно не изменяется. Могу ли я сохранить частичные изображения, чтобы добиться оптимизации размера файла? Я прыгаю через эти обручи, потому что я хобби с несколькими изображениями, и я не хочу платить за частный реестр.docker build
на хосте?npm install
... Я не могу собрать на своем хосте, потому что у него очень мало памяти, и этот шаг всегда терпит неудачу (см .: github.com/npm/npm/issues/5021 )Основываясь на этом блоге , можно опубликовать образ докера без реестра докеров, выполнив:
После выполнения этой команды можно скопировать изображение на сервер и импортировать его следующим образом:
источник
Отправка образа докера на удаленный сервер может быть выполнена в 3 простых шага:
Локально используйте scp для передачи .tar на удаленный
На удаленном сервере загрузите образ в докер:
источник
Если вы не хотите использовать сам Docker Hub, вы можете разместить свой собственный Docker-репозиторий в Artifactory от JFrog:
https://www.jfrog.com/confluence/display/RTF/Docker+Repositories
который затем будет работать на вашем собственном сервере (ах).
Доступны и другие поставщики хостинга, например CoreOS:
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
который купил quay.io
источник