docker cli 可以通过设置来访问远程 docker 服务器DOCKER_HOST
环境变量。
Mostly, tcp://<hostname-or-ip>:<port>
或有时ssh://<hostname-or-ip>:<port>
用来。
不幸的是,docker 文档谈论了一切,除了这个变量可能的 URL 格式。它们是什么,它们如何工作?
的解析DOCKER_HOST
变量发生在parseDockerDaemonHost
函数在opts/hosts.godocker-cli 的源代码片段。
可能的值如下:
-
tcp://1.2.3.4:2375
- 它通过远程系统的 TCP 端口 2375 连接到 docker 服务器。除了 IP 之外,还可以使用主机名。忽略端口字段,在正常模式下默认为 2375,如果我们使用 TLS 加密则默认为 2376(应使用 docker 客户端调用--tls
标志)。
-
unix:///path/to/socket
- 它连接到监听本地unix套接字的docker服务器/path/to/socket
。 Unix 套接字仅存在于 Linux(及 co)系统上。该路径不必是绝对路径。默认值为/var/run/docker.sock
(如果连接DOCKER_HOST=unix://
).
-
npipe:///./pipe/docker_engine
- 命名管道类似于 Unix 套接字,但在 Windows 世界中。它可能连接在 Windows 上运行的本地 docker 服务器。请注意,Windows 上的 docker 通过 Microsoft 的 HyperV 虚拟化引擎运行在 Linux VM 上。它可能是通过 HyperV 提供的虚拟网络实现的。本机 Windows docker 的使用并不是很广泛。
-
fd://1.2.3.4:5678
- 与它的名字相反,它可能与文件描述符无关。它的行为类似于tcp://
,除了端口号不默认为 2375。确切的工作可能需要进一步挖掘 docker-cli 源代码。
-
ssh://1.2.3.4:22
- 它调用ssh
命令远程登录远程服务器。这docker
命令应该在默认情况下可用PATH
。在那里它执行一个docker
命令,向其传递完全相同的参数,我们用它们在本地调用它。也许它只能在其默认地址上连接 docker 服务器(/var/run/docker.sock
)在远程端。
无协议 URL (//host:port
)默认为tcp://
。任何其他 URL 格式都会被拒绝Invalid bind address format
错误信息。
通信协议是 http(s),尽管我在代理配置中遇到了一些问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)