2016-09-29 3 views
0

Я использую Nodejs & request, чтобы сформировать мои вызовы API, я могу делать вызовы API непосредственно в UnixSocket с ним, однако он не выполняет каждую попытку при запросе из контейнера реестра Docker. работают, поэтому я считаю, что это ошибка конфигурации реестра.Не удается получить действительный ответ от Docker Registry remote API

Я установил его из коробки just like the doc шагов ниже.

docker run -d -p 5000:5000 --restart=always --name registry registry:2 
docker pull alpine 
docker tag alpine localhost:5000/alpine 
docker push localhost:5000/alpine 

код я использую для запроса ниже, он получает 404 not found.

const request = require('request') 
    request({ 
    method: 'GET', 
    uri: 'http://localhost:5000/images/json', // status 404 
    // uri: 'http://unix:/var/run/docker.sock:/images/json', // this works 
    headers: { host : 'localhost' } 
    }, (e, res, body) => { 
    if(e) return console.error(e) 
    console.log(res.statusCode == 200 ? JSON.parse(body) : res.statusCode) 
    }) 

Чтобы быть ясным, этот код предназначен только для того, чтобы продемонстрировать, что я делаю запрос GET, который должен быть хорошо сформирован.

Что нужно сделать, чтобы разрешенный рабочий стол реагировать на удаленный API?

ответ

2

Docker Registry не имеет API /images/json, а API-интерфейс Docker Registry несовместим с API-интерфейсом докеров.

Чтобы получить список изображений из реестра Docker, попробуйте GET /v2/_catalog. Полный документ можно найти here.

+0

Ничего себе. Не могу поверить, что я полностью пропустил этот факт. Спасибо за быстрый ответ и ссылку на doc! – MatUtter

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