我目前正在运行 Ubuntu 20.04,并尝试使用 systemd
方法通过 tcp 公开远程 docker 访问,如官方 docker guide 中所列。
# 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
吗?使用任一环回地址有什么显着差异吗?
答案 0 :(得分:0)
文档指导您根据需要更改线路。当您使用 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 是一个特殊地址,意思是“监听我所有的接口”。