2015-03-12 4 views
0

Я думаю, что знаю, почему это происходит, контейнер реестра докеров теряет записи о том, что было нажато на репо, я хочу, чтобы поиск был выполнен непосредственно против бэкэнд (в в моем случае я использую ведро s3). У меня есть шаблон облака, поэтому я часто запускаю свой стек с нуля, снова загружая контейнер реестра, настраивая все конфиги, конечно, я теряю все данные изображений, которые я нажал на репо. Мой экземпляр ec2, запускающий контейнер реестра докеры, может быть обновлен или спуститься по какой-либо причине, а новый будет развернут группой автоматического масштабирования.Реестр не может найти все изображения в репозитории при выполнении поиска Docker

Итак, мой вопрос в основном, что является лучшим доступным способом всегда подключаться к реестру и всегда видеть все изображения в репозитории s3 при выполнении поиска, был ли реестр перезагружен или новый был развернут? Установка тома из экземпляра ec2 не будет работать, потому что очень вероятно, что экземпляр ec2 может спуститься с помощью контейнера реестра докеров в определенный момент времени.

ответ

1

Я предполагаю, что вы используете базу данных поиска sqlalchemy. Я считаю, что возможно, что вы теряете данные об изображениях, которые вы нажали, поскольку база данных поиска хранит данные локально по умолчанию. Этот сценарий и пути вокруг него обсуждаются на форуме https://github.com/docker/docker-registry/issues/475 докер реестра, с этой страницы:

По умолчанию поиск бэкенд использует SQLite базу данных локально. Вы можете установить , изменив строку подключения на базу данных где-то вне вашей группы автомасштабирования или в пределах VPC (если вы используете один, то есть). Может ли это быть проблемой, вы видите ?

В дальнейшем обсуждается вопрос о размещении внешней базы данных где-то, возможно, на EC2, и что не нужно беспокоиться, если это спустится и появится пустым, поскольку пустые базы данных будут переиндексированы реестра.

+0

Да, это на самом деле проблема, с которой я столкнулся. Идеально, что я бы хотел, чтобы весь стек реестра докеров зависел от облачной информации без каких-либо зависимостей. Я думаю, это невозможно сейчас, я просто не понимаю, почему он не будет искать фактическое репо напрямую и каждый раз восстанавливать все доступные изображения. – alexfvolk

+0

Я уже не уверен, если вы действительно видите поведение, описанное выше. Вы правы, что перезагрузка контейнера должна воссоздать индекс с нуля, если база данных отсутствует. Есть некоторые доказательства того, что это должно произойти здесь: https://github.com/docker/docker-registry/issues/516 (в комментарии от wking). Я также играл с док-реестром, работающим на boot2docker, но нажав на s3. Он создал базу данных индексов /tmp/docker-registry.db, и при удалении я больше не мог искать, перезагрузка контейнера заново создала индекс db, и поиск изображения на s3 снова работал. – ikkjo

 Смежные вопросы

  • Нет связанных вопросов^_^