Проверка связи с демоном Docker через API с помощью Powershell не удалась
Я пытаюсь проверить с одной машины в моей локальной сети через PowerShell, работает ли Docker Desktop Daemon (Win 10) на другом компьютере в моей локальной сети.
Я использую последнюю версию Docker Desktop (выпуск Edge):
Для моего тестирования я проверил опцию "Expose (yada yada yada)".
Когда я бегу:
Invoke-WebRequest -Method 'HEAD' "http://192.168.0.194:2375/v1.40/_ping"
Я получил:
Invoke-WebRequest: невозможно подключиться к удаленному серверу В строке:1 символ:1
Invoke-WebRequest -Method 'HEAD' "http://192.168.0.194:2375/v1.40/_pi...
CategoryInfo: InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
FullyQualifiedErrorId: исключение WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
С помощью 'GET'
приводит к тому же.
Я основываюсь на этой ссылке:
https://docs.docker.com/engine/api/v1.40/
Есть идеи?
1 ответ
Вы не можете сделать это так, как предлагаете, и вообще сделать сокет Docker доступным по сети (установить этот флажок) - действительно плохая идея.
Внимательно прочтите текст под флажком, который вы отметили (выделено мной):
Это также делает вас уязвимым для атак удаленного выполнения кода. Используйте с осторожностью.
Любой, у кого есть доступ к демону Docker, может запустить любой контейнер с любыми допустимыми параметрами, включая запуск с разрешениями уровня администратора и монтирование контента с хоста. В Windows это несколько ограничено возможностью монтировать только определенные каталоги в контейнеры, но, по крайней мере, это позволяет любому локальному процессу делать что угодно с любыми вашими пользовательскими данными.
Я бы предложил немедленно снять этот флажок и подумать, нужно ли вам переустанавливать систему, если ненадежный локальный процесс сумел использовать Docker.
Соответственно, опция флажка предназначена специально для предоставления доступа к демону Docker только для localhost
. К нему нельзя получить удаленный доступ. Вам нужен какой-то другой механизм для удаленного аудита того, какое программное обеспечение работает в системе.