使用 127.0.0.1:2375 通过 tcp 启用远程 docker 访问失败但在使用 0.0.0.0:2375 时有效
Enabling remote docker access via tcp with 127.0.0.1:2375 fails but work when using 0.0.0.0:2375
我目前 运行 Ubuntu 20.04 并尝试使用 systemd
方法通过 tcp 公开远程 docker 访问,如官方 [=16] 中所列=].
# config in docker.service.d
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
但是我注意到只有当 IP 地址被列为 0.0.0.0
而不是 127.0.0.1
时它才有效。
我可以知道是什么导致它只能与 0.0.0.0:2375
一起使用吗?使用任一环回地址有什么显着差异吗?
文档指导您根据需要更改行。当您使用 127.0.0.1
时,守护程序将在环回接口上侦听,因此无法从网络访问。环回接口只能在同一主机上访问。
当您使用 0.0.0.0
(不是环回,而是一个特殊地址,表示任何接口,因此包括您连接到网络的任何接口)时,到达主机端口 2375 的网络请求将被路由到您的守护进程。
更新:你可能是这样想的。您指定为 -H <IPv4>:2375
的 IP 标识守护程序将侦听的接口。它是来自网络的请求的目标 IP,以及来自守护程序的回复的源 IP。 127.0.0.1 对应于环回接口,您可以使用例如192.168.1.54 如果那是您的 IP 地址之一。 0.0.0.0 是一个特殊地址,意思是“监听我所有的接口”。
我目前 运行 Ubuntu 20.04 并尝试使用 systemd
方法通过 tcp 公开远程 docker 访问,如官方 [=16] 中所列=].
# config in docker.service.d
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
但是我注意到只有当 IP 地址被列为 0.0.0.0
而不是 127.0.0.1
时它才有效。
我可以知道是什么导致它只能与 0.0.0.0:2375
一起使用吗?使用任一环回地址有什么显着差异吗?
文档指导您根据需要更改行。当您使用 127.0.0.1
时,守护程序将在环回接口上侦听,因此无法从网络访问。环回接口只能在同一主机上访问。
当您使用 0.0.0.0
(不是环回,而是一个特殊地址,表示任何接口,因此包括您连接到网络的任何接口)时,到达主机端口 2375 的网络请求将被路由到您的守护进程。
更新:你可能是这样想的。您指定为 -H <IPv4>:2375
的 IP 标识守护程序将侦听的接口。它是来自网络的请求的目标 IP,以及来自守护程序的回复的源 IP。 127.0.0.1 对应于环回接口,您可以使用例如192.168.1.54 如果那是您的 IP 地址之一。 0.0.0.0 是一个特殊地址,意思是“监听我所有的接口”。