Как поделиться своим Docker-Image без использования Docker-Hub?



мне интересно, где изображения Докера точно хранятся на моем локальном хост-компьютере.
Могу ли я поделиться своим Docker-изображением без использования Docker-Hub или Dockerfile но "реальный" докер-образ? И что именно происходит, когда я "нажимаю" свой докер-образ на Докер-хаб?

863   4  

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 простых шага:

  1. локально, сохраните изображение докера как .тар:docker save -o <path for created tar file> <image name>

  2. локально, используйте scp для передачи .тар к удаленным

  3. на удаленном сервере загрузите изображение в docker: docker load -i <path to docker image tar file>

Comments

    Ничего не найдено.