Назад | Перейти на главную страницу

netstat показывает подключенный сокет с путем к нему, но путь не существует

Я внутри док-контейнера и побежал netstat -x | grep docker который принес мне:

unix  3      [ ]         STREAM     CONNECTED     62288711 /var/run/docker.sock
unix  3      [ ]         STREAM     CONNECTED     59416957 /var/run/docker.sock
unix  3      [ ]         STREAM     CONNECTED      52070 /var/run/dockershim.sock
unix  3      [ ]         STREAM     CONNECTED      52071 /var/run/dockershim.sock
unix  3      [ ]         STREAM     CONNECTED      51987 /var/run/docker.sock
unix  3      [ ]         STREAM     CONNECTED     63299168 /var/run/docker.sock
unix  3      [ ]         STREAM     CONNECTED      52649 /var/run/docker.sock
unix  3      [ ]         STREAM     CONNECTED      42851 /var/run/docker/libcontainerd/docker-containerd.sock

Но когда я хочу получить доступ /var/run/docker.sock или даже /var/run я получил

ls: / var / run /: нет такого файла или каталога

Это какой-то механизм безопасности, вроде отброшенной возможности? Интересно, почему netstat может указывать на такой путь, когда его даже нет? Есть ли другой способ получить доступ к этому сокету, если он каким-то образом должен быть там?

Выполнение этой команды внутри контейнера докеров показывает вам информацию о сокетах во всей системе (а не только внутри вашего контейнера). Эта информация доступна для контейнерных процессов через / proc / net / unix и другие аналогичные файлы, которые использует netstat. Следовательно /var/run/... в выводе netstat - это глобальный путь в вашей системе, недоступный для этого конкретного контейнера.