【发布时间】:2014-01-26 12:51:38
【问题描述】:
我想让我的docker containers 了解他们的配置,就像您可以通过元数据获取有关 EC2 实例的信息一样。
我可以使用(前提是docker 正在侦听端口4243)
curl http://172.17.42.1:4243/containers/$HOSTNAME/json
获取它的一些数据,但想知道是否有更好的方法至少获取容器的完整 ID,因为HOSTNAME 实际上缩短为 12 个字符,而 docker 似乎执行“最佳匹配”就可以了。
另外,如何获取 docker 主机的外部 IP(除了访问 AWS 特有的 EC2 元数据)
【问题讨论】:
-
注意:在尝试以下任何尝试在容器内使用 /var/run/docker.sock 的方法之前,您应该阅读此lvh.io/posts/…
-
如果@harschware 的链接断开,我将在这里总结一下:通过授予容器对
/var/run/docker.sock的访问权限,可以(微不足道)突破 docker 提供的遏制并获得访问权限主机。显然这是有潜在危险的。 -
如果 --hostname 参数与 run 命令一起使用,是否有人知道如何在 windows docker 容器中获取相同的信息,以便不再简单地运行“主机名”给你容器ID?
-
在安全性方面将 docker daemon api 暴露给容器是一种非常糟糕的方法。因为受感染的容器可以访问 docker 并做任何它想做的事情。应该有一些单独的 API 仅用于获取非私人信息。