Docker 容器內部獲取自身容器 id 方法

在做集羣批量部署的過程中,記錄日誌及鏈路追蹤時,我們需要在大量的容器中篩選出出現問題或需要記錄的容積,以更快的方式確認錯誤的位置,因此在容器榮能獲取到容器的 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章