docker - DOCKER_HOST URL 的可能格式是什么?

docker cli 可以通过设置 DOCKER_HOST 访问远程 docker 服务器环境变量。

主要是,tcp://<hostname-or-ip>:<port>或者有时 ssh://<hostname-or-ip>:<port>被使用。

不幸的是,docker 文档讨论了所有内容,除了这个变量可能的 URL 格式。它们是什么,它们如何工作?

最佳答案

DOCKER_HOST 变量的解析发生在 opts/hosts.goparseDockerDaemonHost 函数中。 docker-cli 的源代码片段。

可能的值如下:

  • tcp://1.2.3.4:2375 - 它在远程系统的 TCP 端口 2375 连接到 docker 服务器。除了 IP,还可以使用主机名。省略端口字段,它在正常模式下默认为 2375,如果我们使用 TLS 加密,则默认为 2376(为此应使用 --tls 标志调用 docker 客户端)。
  • unix:///path/to/socket - 它连接到监听本地 unix 套接字 /path/to/socket 的 docker 服务器。 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 提供的虚拟网络到达的。 native Windows docker 的使用不是很广泛。
  • fd://1.2.3.4:5678 - 与其名称相反,它可能与文件描述符无关。它的行为类似于 tcp://,除了端口号不是默认的 2375。确切的工作可能需要在 docker-cli 源中进一步挖掘。
  • ssh://1.2.3.4:22 - 它调用ssh 命令远程登录远程服务器。 docker 命令应该在默认的 PATH 中可用。它在那里执行一个 docker 命令,向它传递完全相同的参数,我们在本地调用它们。可能它只能在远程端的默认地址 (/var/run/docker.sock) 上连接 docker 服务器。

无协议(protocol) URL (//host:port) 默认为 tcp://。任何其他 URL 格式都会被拒绝,并显示 无效的绑定(bind)地址格式 错误消息。

通信协议(protocol)是 http(s),尽管我在代理配置中遇到了一些问题。

https://stackoverflow.com/questions/62757127/

相关文章:

r - 在 R 中将日期偏移一个月

python - 当类的 __init__ 变量更改时如何检测和触发函数

python - 合并具有两个公共(public)值的行 | Python

google-bigquery - BigQuery 数组 UNNEST 以返回数组中的不同值?

ios - Flutter NSException : Configuration fails. 可

c# - 在 C# 中的 SQL CLR 函数中设置小数精度

php - 试图从 laravel 中 Eloquent 产品评论中获取评论者的姓名

azure - 属性错误: module 'pytest' has no attribute 'co

r - 使用 R Shiny 中的操作按钮将行从一个 DT 移动到其他 DT

javascript - 如何使用 react 模态显示没有背景效果的模态?