Вызовите API Docker без демона Docker
Мне было интересно, есть ли способ сделать звонок в Docker API без docker daemon
,
Я просмотрел их документы и немного исходного кода за Docker CLI и не смог найти ответ.
Я хочу сделать HTTP/HTTPS-вызов напрямую в Docker API! Я не хочу устанавливать docker
CLI. Это как-то возможно, и вы можете привести пример?
РЕДАКТИРОВАТЬ:
Я хочу сделать API-интерфейс Docker Registry без необходимости установки docker
проверить учетные данные, которые я бы позже использовал для docker login
команда.
2 ответа
Я думаю, что ваш вопрос немного запутан. Вы не можете сделать вызов Docker API без демона Docker, потому что API - это демон (или, по крайней мере, демон предоставляет API).
Конечно, вы можете делать запросы (контролировать) API / демон без клиента Docker. Просто запускайте ваши запросы непосредственно в сокет (unix:///var/run/docker.sock). Или, если вы хотите выставить его как HTTP(рекомендуется S), вы можете сделать это, изменив параметры запуска демона и вместо этого отправив запрос по HTTP(S) на этот адрес.
docker CLI <==[ Docker Engine API ]==> dockerd
Docker CLI взаимодействует с демоном Docker с помощью API Docker Engine. Последняя версия v1.41
CLI и демон не обязательно должны находиться на одном компьютере. Установив контекст докера, вы можете направить интерфейс командной строки докера для связи с удаленным демоном докера, следовательно, без локальной установки Docker. Точно так же, если вы выполняете вызовы API Docker Engine, используя
curl
или любой другой SDK, вы можете использовать unix:///var/run/docker.sock для локального демона (если он установлен) или URL-адрес удаленного демона.
dockerd <==[ API реестра Docker ]==> Реестр Docker
Демон docker взаимодействует с реестром Docker с помощью API Docker Registry. Последняя версия v2. А
docker pull alpine
сообщает демону в текущем контексте выполнить вызов Docker Registry API к
https://registry-1.docker.io/v2
конечная точка в DockerHub, а
docker pull registry.gitlab.com/username/image:tag
говорит демону выполнить вызов Docker Registry API к
https://registry.gitlab.com/v2
конечная точка в вашем частном реестре контейнеров GitLab.