Доступ сгенерированных UUID в контейнере docker - PullRequest
1 голос
/ 09 июля 2020

У меня есть контейнер docker, который работает нормально и имеет UUID для ссылки на песочницу. Я пытаюсь добавить в приложение дополнительные функции и хочу иметь доступ к сгенерированному UUID и ссылаться на него в файле python. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 09 июля 2020

Есть несколько способов сделать это:

  1. Если вам нужен полный UUID, вы можете получить его, заглянув внутрь файла / proc / self / cgroup, а затем выполнить простой cut на нем должно быть достаточно.

    Итак, из контейнера:

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

    Полный рабочий пример:

    ~ % docker exec -ti e5867f7e3597861284644d15b33f94a800542e1b2e36a375a4be7d1f26a4fd56 ash
    ~ # head -1 /proc/self/cgroup | cut -d/ -f3
    e5867f7e3597861284644d15b33f94a800542e1b2e36a375a4be7d1f26a4fd56
    
  2. Файл / proc / 1 / cpuset также предоставит полный UUID, поэтому вы можете go по

    basename $(cat /proc/1/cpuset)
    

    Полный рабочий пример:

    ~ % docker exec -ti e5867f7e3597861284644d15b33f94a800542e1b2e36a375a4be7d1f26a4fd56 ash
    ~ # basename $(cat /proc/1/cpuset)
    e5867f7e3597861284644d15b33f94a800542e1b2e36a375a4be7d1f26a4fd56
    
  3. Чтобы получить сокращенную форму UUID, есть даже более простой подход через имя хоста:

    cat /etc/hostname
    

    И все его эквиваленты:

    • uname -n
      
    • hostname
      
    • echo $HOSTNAME
      

    Пример полной работы:

    ~ % docker exec -ti e5867f7e3597861284644d15b33f94a800542e1b2e36a375a4be7d1f26a4fd56 ash
    ~ # cat /etc/hostname
    e5867f7e3597
    
...