Как поделиться своим Docker-Image без использования Docker-Hub?
мне интересно, где изображения Докера точно хранятся на моем локальном хост-компьютере.
Могу ли я поделиться своим Docker-изображением без использования Docker-Hub или Dockerfile но "реальный" докер-образ? И что именно происходит, когда я "нажимаю" свой докер-образ на Докер-хаб?
4 ответов:
изображения Docker хранятся в виде слоев файловой системы. Каждая команда в файле Dockerfile создает слой. Вы также можете создавать слои с помощью
docker commitиз командной строки после внесения некоторых изменений (черезdocker runнаверное).эти слои хранятся по умолчанию под
/var/lib/docker. Хотя вы могли бы (теоретически) выбрать файлы cherry оттуда и установить его на другом сервере docker, вероятно, плохая идея играть с внутренним представлением, используемым Докер.когда вы нажимаете изображение, эти слои отправляются в реестр (реестр Docker hub по умолчанию... если вы не помечаете свое изображение другим префиксом реестра) и сохраняются там. При нажатии, идентификатор слоя используется, чтобы проверить, если у вас уже есть слой локально или ее нужно скачивать. Вы можете использовать
docker historyчтобы посмотреть, какие слои (другие изображения) используются (и, в некоторой степени, какая команда создала слой).Что касается опций для совместного использования изображения без нажав на реестр Docker hub, ваши лучшие варианты:
docker saveизображение илиdocker exportконтейнер. Это выведет файл tar на стандартный вывод, поэтому вам понравится делать что-то вродеdocker save 'dockerizeit/agent' > dk.agent.latest.tar. Тогда вы можете использоватьdocker loadилиdocker importв другом хосте.разместить свой собственный реестр. - устаревший, см. комментарий
посмотреть docker registry image. Мы построили С3 поддержал реестр который вы можете запускать и останавливать по мере необходимости (все состояние хранится в корзине s3 по вашему выбору), что тривиально для настройки. Это также интересный способ наблюдения за тем, что происходит при нажатии на реестриспользуйте другой реестр, например quay.io (я лично не пробовал), хотя все, что касается вас с Docker hub, вероятно, будет применяться и здесь.
на основе этот блог, можно было бы разделить изображение docker без реестра docker, выполнив:
docker save --output latestversion-1.0.0.tar dockerregistry/latestversion:1.0.0после выполнения этой команды можно скопировать изображение на сервер и импортировать его следующим образом:
docker load --input latestversion-1.0.0.tar
Если вы не хотите использовать сам Docker Hub, вы можете разместить свой собственный репозиторий Docker под Artifactory by JFrog:
https://www.jfrog.com/confluence/display/RTF/Docker + репозитории
который затем будет работать на вашем собственном сервере(ах).
другие поставщики хостинга доступны, например CoreOS:
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
Что купил Куэй.Ио
отправка изображения docker на удаленный сервер может быть выполнена в 3 простых шага:
локально, сохраните изображение докера как .тар:
docker save -o <path for created tar file> <image name>локально, используйте scp для передачи .тар к удаленным
на удаленном сервере загрузите изображение в docker:
docker load -i <path to docker image tar file>
Comments