0

I'm trying to test from one machine on my LAN via PowerShell, whether or not the Docker Desktop Daemon (Win 10) is running on another machine on my LAN.

I'm using the latest version of Docker Desktop (Edge release):

enter image description here

For my testing, I've checked the "Expose (yada yada yada)" option.

When I run:

Invoke-WebRequest -Method 'HEAD' "http://192.168.0.194:2375/v1.40/_ping"

I get:

Invoke-WebRequest : Unable to connect to the remote server At line:1 char: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

Using 'GET' results in the same.

I'm basing it on this reference:

https://docs.docker.com/engine/api/v1.40/#operation/SystemPing

Any idea anyone?

4

1 回答 1

0

您不能按照您建议的方式执行此操作,并且完全可以通过网络使用 Docker 套接字(选中该框)是一个非常糟糕的主意。

阅读您仔细检查的复选框下的文本(强调我的):

它还使您容易受到远程代码执行攻击。谨慎使用。

任何可以访问 Docker 守护程序的人都可以使用任何有效选项启动任何容器,包括以管理员级别的权限运行和从主机装载内容。在 Windows 上,这在某种程度上受到限制,只能将特定目录挂载到容器中,但至少这允许任何本地进程对您的任何用户数据执行任何操作。

我建议立即取消选中此复选框,并考虑如果不受信任的本地进程设法利用 Docker,是否需要重新安装系统。

相应地,复选框选项专门用于将 Docker 守护进程仅公开给localhost. 无法远程访问。您需要一些其他机制来远程审核系统上正在运行的软件。

于 2020-01-05T14:13:12.430 回答