在做集群批量部署的过程中,记录日志及链路追踪时,我们需要在大量的容器中筛选出出现问题或需要记录的容积,以更快的方式确认错误的位置,因此在容器荣能获取到容器的 id 我们即能方便的进行问题定位

  1. 宿主机中获取容器 id 如下图所示
docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                                                                   NAMES
9440dd89c405        mongo                             "docker-entrypoint.s…"   3 days ago          Up 3 days           0.0.0.0:27017->27017/tcp                                                mongo
  1. 如果想在容器中获取

进入容器

docker exec -it mongo bash

cat /proc/self/cgroup | head -1

输出

12:cpuset:/docker/9440dd89c4052167611e467efd47e1feccabaad448594cbc90eb7fb3f12f4c3f

可以看出后面的 944 开头的就是容器自身的id。

使用:

head -1 /proc/self/cgroup|cut -d/ -f3

输出:

9440dd89c4052167611e467efd47e1feccabaad448594cbc90eb7fb3f

只取12位id

head -1 /proc/self/cgroup|cut -d/ -f3|cut -c1-12

输出:

9440dd89c405
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐