Я внутри док-контейнера и побежал 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 - это глобальный путь в вашей системе, недоступный для этого конкретного контейнера.