id.go 440 B

12345678910111213141516171819202122
  1. package docker
  2. import (
  3. "bytes"
  4. "os/exec"
  5. )
  6. var (
  7. _dockerId string
  8. )
  9. func SelfContainerID() (string, error) {
  10. if _dockerId != "" {
  11. return _dockerId, nil
  12. }
  13. if buf, err := exec.Command("/bin/sh", "-c", "cat /proc/self/cgroup | grep -o -e \"docker/.*\"| head -n 1 |sed \"s/docker\\/\\(.*\\)/\\\\1/\"").CombinedOutput(); err != nil {
  14. return "", err
  15. } else {
  16. _dockerId = string(bytes.TrimSpace(buf))
  17. return _dockerId, nil
  18. }
  19. }