Мне интересно, где изображения Docker точно хранятся на моей локальной машине. Могу ли я поделиться своим Docker-Image без использования Docker-Hub
или Dockerfile
, но «настоящего» Docker-Image? И что именно происходит, когда я «подталкиваю» свой Docker-Image к Docker-Hub?Как поделиться своим Docker-Image без использования Docker-Hub?
ответ
Изображения докеров хранятся в виде уровней файловой системы. Каждая команда в файле Dockerfile создает слой. Вы также можете создавать слои, используя docker commit
из командной строки после внесения некоторых изменений (возможно, через docker run
).
Эти слои сохраняются по умолчанию под /var/lib/docker
. В то время как вы могли (теоретически) отобрать файлы вишни и установить их на другом сервере докеров, вероятно, это плохая идея, чтобы играть с внутренним представлением, используемым Docker.
При нажатии изображения эти слои отправляются в реестр (реестр док-станции, по умолчанию ... если вы не помечаете свое изображение другим префиксом реестра) и сохраняетесь там. При нажатии идентификатор уровня используется, чтобы проверить, есть ли у вас уже локальный слой или его необходимо загрузить. Вы можете использовать docker history
, чтобы посмотреть, какие слои (другие изображения) используются (и, в некоторой степени, какая команда создала слой).
Что касается вариантов, чтобы разделить изображение без нажатия на ступице реестра Docker, ваши лучшие варианты:
docker save
изображение илиdocker export
контейнер. Это выведет файл tar для стандартного вывода, поэтому вам понравится сделать что-то вродеdocker save 'dockerizeit/agent' > dk.agent.lastest.tar
. Затем вы можете использоватьdocker load
илиdocker import
в другом хосте.Создайте собственный реестр. - Устаревшие, см. Комментарии
См. docker registry image. Мы создали s3 backed registry, который вы можете запускать и останавливать по мере необходимости (все состояние хранится в ведро s3 по вашему выбору), которое тривиально для настройки. Это также интересный способ посмотреть, что происходит при нажатии в реестр.Используйте другой реестр, например quay.io (я лично его не пробовал), хотя любые проблемы, которые могут возникнуть с док-концентратором, будут применяться здесь тоже.
Для дальнейшего использования ссылка на образ реестра докеров устарела. Теперь вы должны использовать [Docker Registry 2.0] (https://docs.docker.com/registry/) и код в [github/docker/distribution] (https://github.com/docker/distribution) – RoelAdriaans
I ' m не уверен, что ясно, что Registry 2.0 готов к использованию для замены оригинального. Кажется, упускают некоторые базовые функции, такие как поиск http://stackoverflow.com/questions/30113726/docker-registry-2-0-api-v2 – JoshRivers
Вопрос о 'docker save': когда я нажимаю изображение, которое происходит от другого image (скажем, 'python: 2.7') в реестр, родительское изображение не нужно загружать более одного раза, если оно не изменяется. Могу ли я сохранить частичные изображения для достижения подобной оптимизации размера файла? Я прыгаю через эти обручи, потому что я любитель с несколькими изображениями, и я не хочу платить за частный реестр. – Pieter
Если вы не хотите использовать сам Docker Hub, вы можете разместить свой собственный репозиторий Docker под Artifactory по JFrog:
https://www.jfrog.com/confluence/display/RTF/Docker+Repositories
, который будет работать на вашем собственном сервере (s).
Другие поставщики хостинга доступны, например CoreOS:
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
, который купил набережную.И.О.
на основе this blog, были выполнены следующие команды:
docker save --output latestversion-1.0.0.tar dockerregistry/latestversion:1.0.0
скопировать изображение на сервер, а импорт выглядит следующим образом:
docker load --input latestversion-1.0.0.tar
- 1. Как поделиться своим чатом на другом сайте?
- 2. Как поделиться своим рельсовым приложением с Facebook
- 3. как поделиться своим кодом на другом языке?
- 4. Как поделиться своим текущим местоположением с UIActivityViewController?
- 5. Как поделиться своим Android-приложением с facebook?
- 6. Как поделиться своим временем с постоянным обновлением веб-страницы?
- 7. Как я могу поделиться своим текущим профилем Chrome с Selenium?
- 8. Как я могу поделиться своим веб-сайтом с партнером?
- 9. Как узнать, что посетитель отказался поделиться своим местоположением с сайтом?
- 10. Как поделиться своим текстом lIke emoji на сайте социальной сети?
- 11. как я могу поделиться своим приложением экрана, когда нажимаю кнопку?
- 12. Как я могу поделиться своим URL-адресом приложения на fb?
- 13. как поделиться своим счетом в социальных сетях в единстве3d
- 14. Как я могу поделиться своим сценарием приложений между таблицами Google?
- 15. Как я могу поделиться своим кодом с «Управление библиотекой»?
- 16. Как поделиться своим приложением в facebook прямо в андроиде?
- 17. Поделиться ссылкой Twitter без ссылки?
- 18. Могу ли я поделиться своим приложением с OLEDB 12.0?
- 19. Поделиться текстом на Twitter без использования Intent на фоне приложения
- 20. iOS 6 Поделиться с Twitter без использования системной учетной записи
- 21. Могу ли я поделиться своим Hangouts с другими пользователями?
- 22. Можно ли поделиться своим ключом API разработчика trello?
- 23. Могу ли я поделиться своим приватным репозиторием GitHub по ссылке?
- 24. Dockerhub Automated Builds tagging
- 25. DockerHub и сходство GitHub
- 26. Когда заканчиваются токены DockerHub?
- 27. DockerHub + GitHub с командой
- 28. Токен доступа для Dockerhub
- 29. Dockerhub Repository Описание
- 30. Как поделиться своим приложением Android с помощью Facebook, электронной почты и смс?
На будущее: хорошая статья на [ перемещение изображений докеров] (https://blog.giantswarm.io/moving-docker-container-images-around/) – Mifeet