kva*_*aps 9 containers kubernetes
Kubernetes 正在弃用 Docker 作为 CRI 引擎。现在有containerd和CRI-O,可以作为它的替代品。两者都可以通过 cri-tools 中的 crictl 进行管理。
我需要一些通用的方法来查找正在运行的容器的 PID。
实际上我需要一个相当于 docker 命令的crictl :
# docker inspect 86cd8d605c2da -f '{{ .State.Pid }}'
9625
Run Code Online (Sandbox Code Playgroud)
正如我在评论部分提到的,要使用CRI实现您需要的功能,您还可以使用inspect命令。
实现容器PID的步骤
Container ID。$ crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
cdb3feac5bdd3 35c43ace92162 3 minutes ago Running nginx 0 940b5d97fb46a
0d84f965a1c8d 6266988902813 29 minutes ago Running prometheus-to-sd 0 11dad991a79e4
437c1e31d5ff1 ccbe64d6d9477 29 minutes ago Running metadata-agent-nanny 0 74cbad8857254
Run Code Online (Sandbox Code Playgroud)
$ crictl inspect cdb3feac5bdd3
{
"status": {
"id": "cdb3feac5bdd3981d58fb3cd2fc08cf53bbff326a38c95a77e7ec43a80fa9713",
"metadata": {
"attempt": 0,
"name": "nginx"
Run Code Online (Sandbox Code Playgroud)
在下面的部分中,您将能够找到这个容器PID。
"info": {
"sandboxID": "940b5d97fb46a3c6efdf256f751cab3f3a282150efd4cdef969692d03deb4829",
"pid": 15701,
Run Code Online (Sandbox Code Playgroud)
上面(默认)输出是Go-Template格式(您也可以选择YAML或JSON格式)。
$ crictl inspect
NAME:
crictl inspect - Display the status of one or more containers
OPTIONS:
--output value, -o value Output format, One of: json|yaml|go-template|table
Run Code Online (Sandbox Code Playgroud)
要获得您需要的内容,您只需指定path此信息即可。
$ crictl inspect --output go-template --template '{{.info.pid}}' cdb3feac5bdd3
15701
Run Code Online (Sandbox Code Playgroud)
使用以下命令来containerID获取容器PID。
$ crictl inspect --output go-template --template '{{.info.pid}}' <yourContainerID>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12500 次 |
| 最近记录: |