Расположение привязки в реестре Docker приводит к тайм-аутам
Я использую Docker на Mac, и у меня возникли некоторые проблемы с привязкой места на сервере реестра - я надеялся, что кто-то здесь сможет помочь.
К счастью, проблема довольно проста. Допустим, я хочу запустить простой, небезопасный реестр Docker. Во-первых, я проверяю, что соответствующий ip: portno внесен в список "небезопасных реестров". Согласно документации, я запускаю docker run -d --restart=always --name registry -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -p 5000:5000 registry:2
Когда я это делаю, реестр "просто работает". Я могу пометить изображение как 10.0.3.59:5000/imgname
и толкай и тяни нормально.
Однако я хотел бы, чтобы данные реестра находились в определенном месте в хост-системе, скажем, /mnt/registry
, Я перехожу к настройкам Docker, убедитесь, что общий доступ включен на mnt
папку и удалите старые изображения и контейнеры
Следуя документации, я снова запускаю docker run -d --restart=always --name registry -v storage:/var/lib/registry/ -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -p 5000:5000 registry:2
, Однако, если я сейчас попытаюсь сделать docker push 10.0.3.59:5000/imgname
теперь я получаю следующие сообщения
The push refers to a repository [10.0.3.52:5000/cropspokyimage]
74146a4cf164: Retrying in 9 seconds
6c45ce1e774e: Retrying in 9 seconds
0914c5636fb4: Retrying in 9 seconds
f859b8ada191: Retrying in 9 seconds
b2d02a400fe3: Retrying in 9 seconds
fc0e50be166d: Waiting
a8cfe888247e: Waiting
e745d991dded: Waiting
7b08edaa4533: Waiting
01b4d034aab5: Waiting
d0c686d0df68: Waiting
9deb78b26d56: Waiting
0566c118947e: Waiting
6f9cf951edf5: Waiting
182d2a55830d: Waiting
5a4c2c9a24fc: Preparing
cb11ba605400: Waiting
Примерно через минуту или около того ожидания он, наконец, печатает следующую ошибку и завершает работу received unexpected HTTP status: 500 Internal Server Error
Очевидно, это оставляет меня без каких-либо желаемых функций. Кто-нибудь сможет помочь мне найти решение?
1 ответ
Здесь были некоторые проблемы. Во-первых, каталог, который я смонтировал для тома, имел неправильные разрешения, поэтому докер не мог записать в него. cmod 777
исправил это.
С использованием docker logs
Команда для проверки журналов реестра имела решающее значение.
Проверка журналов также показала, что restrict-useradd
сценарий ошибался, когда пользователь, которого он пытался добавить, уже существовал, поэтому добавление || 0
к возвращаемому значению в скрипте это исправлено. Это было проблемой с restrict-groupadd
тоже