【问题标题】:How to get the docker host URI on my localhost如何在我的本地主机上获取 docker 主机 URI
【发布时间】:2019-05-17 00:11:02
【问题描述】:

是否有可以评估的命令 (eval $COMMAND) 或可以检查以获取本地运行的 docker 主机的 URI 的环境变量?我需要这个表达式在运行时进行评估,因为我需要在一个脚本中使用它,该脚本旨在在 docker 引擎可能未在标准端口上运行的主机上运行。

谢谢。

【问题讨论】:

  • local docker hostthe pc which run docker daemon & configured to use local docker host 上的命令?
  • 当我从连接到本地主机的终端执行docker ps 时,该命令会转到某个 docker 引擎。我想解析响应该命令的守护进程的 URI。
  • 你应该可以从${DOCKER_HOST}得到这个
  • 我是这么认为的;但该变量似乎用户偏好多于处理的docker状态。我在这里运行 docker 命令,echo ${DOCKER_HOST} 返回空。
  • 在我的特殊情况下,它不是远程主机,而是本地主机。不知何故,当我发出docker ... 时,docker 客户端知道如何访问 docker 引擎或尝试失败,我只需要一个可以评估此​​类 URI 的命令,甚至可能是一些 docker 实用程序?

标签: docker uri docker-java


【解决方案1】:

我不确定我是否完全理解了您的问题,但希望这可能会有所启发。

docker 命令只是一个 REST 客户端。默认情况下,客户端连接到 unix-socket /var/run/docker.sock 以向 docker 守护进程发送请求。 您实际上可以通过运行curl 来实现相同的目标:

curl --unix-socket /var/run/docker.sock http:/localhost/version

现在,如果您的 docker 守护程序配置为远程访问,您可能在 docker.service 服务文件中拥有 URI 信息。看到这个帖子 How do I find the Docker REST API URL?

希望对你有帮助

【讨论】:

  • 不错!这正是我想要的。我不太清楚客户端是如何寻址守护进程的;但这完全使事情朝着我需要的方向发展,谢谢!
  • 我很高兴它有帮助
【解决方案2】:

你可以在主机上使用 ps 命令和 grep docker 如下所示

>ps aux | grep docker
root      1729  0.0  0.3 2222936 56288 ?  Ssl  May08   8:05  /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

然后你可以得到它所链接的端口或袜子

【讨论】:

  • 这并没有给我URI,也没有可靠的部分;大多数主机在ps 中有很多条目匹配docker
  • 然后 grep 整个路径 /usr/bin/dockerd
  • 它不起作用。如果您不知道,那没关系,无需继续猜测或破解,直到找到可能坚持的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
相关资源
最近更新 更多