26.3. Podman API 수동 실행
Podman API를 실행할 수 있습니다. 이는 특히 Docker 호환성 계층을 사용할 때 API 호출을 디버깅하는 데 유용합니다.
전제 조건
podman-remote
패키지가 설치되어 있습니다.# yum install podman-remote
절차
REST API에 대한 서비스를 실행합니다.
# podman system service -t 0 --log-level=debug
-
값 0은 시간 초과를 의미하지 않습니다. rootful 서비스의 기본 끝점은
unix:/run/podman/podman.sock
입니다. -
log
-level <level>
옵션은 로깅 수준을 설정합니다. 표준 로깅 수준은debug
,info
,warn
,error
,fatal
,panic
입니다.
-
값 0은 시간 초과를 의미하지 않습니다. rootful 서비스의 기본 끝점은
다른 터미널에서 Podman의 시스템 정보를 표시합니다.
podman-remote
명령은 일반podman
명령과 달리 Podman 소켓을 통해 통신합니다.# podman-remote info
Podman API의 문제를 해결하고 요청 및 응답을 표시하려면
curl
comman을 사용합니다. JSON 형식의 Linux 서버에 Podman 설치에 대한 정보를 가져오려면 다음을 수행합니다.# 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" } }
jq
유틸리티는 명령줄 JSON 프로세서입니다.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
가져온 이미지를 표시합니다.
# 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" ], ... ] } ]
추가 리소스
- podman v2.0 RESTful API
- 스니크 미리보기: podman의 새로운 REST API
- Python 및 Bash를 사용하여 Podman RESTful API 탐색
-
시스템의
podman-system-service
도움말 페이지