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 может указывать на такой путь, пока его нет даже там? Есть ли другой способ получить доступ к этому сокету, так как он должен быть каким-то образом?
1 ответ
Выполнение этой команды в Docker-контейнере показывает вам информацию о сокетах во всей системе (не только внутри вашего контейнера). Эта информация доступна для процессов контейнера через /proc/net/unix и другие подобные файлы, которые использует netstat. Следовательно /var/run/...
в выводе netstat указан глобальный путь в вашей системе, недоступный для этого конкретного контейнера.