相信各位兄dei有这样的困扰,项目中需要用到判断容器是否存在的逻辑、需要判断容器是否已正常运行、随时获取容器的状态具体值?等等。
下文所述可一次解决这些问题,同时也方便代码中直接使用详细阐述了结果;
这里分享作者自己的总结,忘了就来这里看,还不收藏等啥呢?
目录
获取容器ID
获取容器创建时间
获取容器启动时间
容器是否存在
容器是否正常运行
容器是否正在重启
获取容器当前具体状态
获取容器的所有挂载映射
获取容器的退出(触发)信号量
获取容器的启动策略
获取容器是以哪个用户启动的
获取容器的启动参数KV列表
获取容器ID
docker inspect --format '{{.Id}}' 容器名
获取容器创建时间
docker inspect --format '{{.Created}}' 容器名/id
获取容器启动时间
docker inspect --format '{{.State.StartedAt}}' 容器名/id
容器是否存在
docker inspect -f '{{.Name}}' > /dev/null 容器名/id
输入一个不存在的容器,报错Error: No such object: xxx,若容器存在则无输出;
容器是否正常运行
docker inspect --format '{{.State.Running}}' 容器名/id
如果为running则结果为true,否则为false
容器是否正在重启
docker inspect --format '{{.State.Restarting}}' 容器名/id
如果为正在重启则结果为true,否则为false
获取容器当前具体状态
docker inspect --format '{{.State.Status}}' 容器名/id
结果为running、exited等这些具体状态值;
获取容器的所有挂载映射
docker inspect --format '{{.Mounts}}' 容器名/id
获取容器的退出(触发)信号量
docker inspect --format '{{.Config.StopSignal}}' 容器名/id
得到的结果是SIGQUIT等信号量。
获取容器的启动策略
docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' 容器名/id
得到的结果是always、no等策略名称。
获取容器是以哪个用户启动的
docker inspect --format '{{.Config.User}}' 容器名/id
得到的结果是0、1001、1002等用户id。 0就是root用户
获取容器的启动参数KV列表
docker inspect --format '{{.Args}}' 容器名/id
所得值如:
[--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.retention.time=100d --storage.tsdb.path=/etc/prometheus/data --web.enable-lifecycle --web.enable-admin-api --query.max-concurrency=50]



