12.3. Ejecución manual de la API de Podman
Este procedimiento describe cómo ejecutar la API de Podman. Esto es útil para depurar las llamadas a la API, especialmente cuando se utiliza la capa de compatibilidad de Docker.
Requisitos previos
El paquete
podman-remote
está instalado.# yum install podman-remote
Procedimiento
Ejecute el servicio para la API REST:
# podman system service -t 0 --log-level=debug
-
El valor 0 significa que no hay tiempo de espera. El punto final por defecto para un servicio rootful es
unix:/run/podman/podman.sock
. -
La opción
--log-level <level>
establece el nivel de registro. Los niveles de registro estándar sondebug
,info
,warn
,error
,fatal
ypanic
.
-
El valor 0 significa que no hay tiempo de espera. El punto final por defecto para un servicio rootful es
En otro terminal, muestra la información del sistema de Podman. El comando
podman-remote
, a diferencia del comando normalpodman
, se comunica a través del socket de Podman:# podman-remote info
Para solucionar los problemas de la API de Podman y mostrar las peticiones y respuestas, utilice el comando
curl
. Para obtener la información sobre la instalación de Podman en el servidor Linux en formato JSON:# curl -s --unix-socket /run/podman/podman.sock http://d/v1.0.0/libpod/info | jq { "host": { "arch": "amd64", "buildahVersion": "1.15.0", "cgroupVersion": "v1", "conmon": { "package": "conmon-2.0.18-1.module+el8.3.0+7084+c16098dd.x86_64", "path": "/usr/bin/conmon", "version": "conmon version 2.0.18, commit: 7fd3f71a218f8d3a7202e464252aeb1e942d17eb" }, … "version": { "APIVersion": 1, "Version": "2.0.0", "GoVersion": "go1.14.2", "GitCommit": "", "BuiltTime": "Thu Jan 1 01:00:00 1970", "Built": 0, "OsArch": "linux/amd64" } }
La utilidad
jq
es un procesador JSON de línea de comandos.Extraiga la imagen del contenedor
registry.access.redhat.com/ubi8/ubi
:# curl -XPOST --unix-socket /run/podman/podman.sock -v 'http://d/v1.0.0/images/create?fromImage=registry.access.redhat.com%2Fubi8%2Fubi' * Trying /run/podman/podman.sock... * Connected to d (/run/podman/podman.sock) port 80 (#0) > POST /v1.0.0/images/create?fromImage=registry.access.redhat.com%2Fubi8%2Fubi HTTP/1.1 > Host: d > User-Agent: curl/7.61.1 > Accept: / > < HTTP/1.1 200 OK < Content-Type: application/json < Date: Tue, 20 Oct 2020 13:58:37 GMT < Content-Length: 231 < {"status":"pulling image () from registry.access.redhat.com/ubi8/ubi:latest, registry.redhat.io/ubi8/ubi:latest","error":"","progress":"","progressDetail":{},"id":"ecbc6f53bba0d1923ca9e92b3f747da8353a070fccbae93625bd8b47dbee772e"} * Connection #0 to host d left intact
Muestra la imagen extraída:
# curl --unix-socket /run/podman/podman.sock -v 'http://d/v1.0.0/libpod/images/json' | jq * Trying /run/podman/podman.sock... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to d (/run/podman/podman.sock) port 80 (0) > GET /v1.0.0/libpod/images/json HTTP/1.1 > Host: d > User-Agent: curl/7.61.1 > Accept: / > < HTTP/1.1 200 OK < Content-Type: application/json < Date: Tue, 20 Oct 2020 13:59:55 GMT < Transfer-Encoding: chunked < { [12498 bytes data] 100 12485 0 12485 0 0 2032k 0 --:--:-- --:--:-- --:--:-- 2438k * Connection #0 to host d left intact [ { "Id": "ecbc6f53bba0d1923ca9e92b3f747da8353a070fccbae93625bd8b47dbee772e", "RepoTags": [ "registry.access.redhat.com/ubi8/ubi:latest", "registry.redhat.io/ubi8/ubi:latest" ], "Created": "2020-09-01T19:44:12.470032Z", "Size": 210838671, "Labels": { "architecture": "x86_64", "build-date": "2020-09-01T19:43:46.041620", "com.redhat.build-host": "cpt-1008.osbs.prod.upshift.rdu2.redhat.com", ... "maintainer": "Red Hat, Inc.", "name": "ubi8", ... "summary": "Provides the latest release of Red Hat Universal Base Image 8.", "url": "https://access.redhat.com/containers//registry.access.redhat.com/ubi8/images/8.2-347", ... }, "Names": [ "registry.access.redhat.com/ubi8/ubi:latest", "registry.redhat.io/ubi8/ubi:latest" ], ... ] } ]
Recursos adicionales
- Para más información sobre la API de Podman 2.0, consulte la documentación de la API RESTful de Podman v2.0.
- Para ver más ejemplos de cómo utilizar la API de Podman 2.0, consulta el artículo Sneak peek: La nueva API REST de Podman, por Tom Sweeney.
- Para ver ejemplos de uso de la API de Podman 2.0 con Python y Bash, consulta el artículo Exploring Podman RESTful API using Python and Bash de Jhon Honce.
-
Para más información sobre el comando
podman system service
, consulte la página de manualpodman-system-service
.