如何获取正在运行的 docker 容器的 IP 地址

新手上路,请多包涵

我正在为 Mac 使用 Docker。我在 Docker 容器中运行基于 nodejs 的微服务。我想通过浏览器测试节点微服务。如何获取正在运行的 docker 容器的 IP 地址?

原文由 user3067875 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 353
1 个回答

如果您不想将主机的端口映射到容器,您可以直接访问容器的 docker range ip。默认情况下,此范围只能从您的主机访问。您可以检查您的容器网络数据:

 docker inspect <containerNameOrId>

可能更好地过滤:

 docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1

通常,默认的 docker ip 范围是 172.17.0.0/16 。如果一切正常并且您没有指定任何特殊的网络选项,您的主机应该是 172.17.0.1 并且您的第一个容器应该是 172.17.0.2

编辑 使用 docker 功能而不是“bash 欺骗”的另一种更优雅的方式:

 docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>

EDIT2 对于现代 docker 引擎,现在是这种方式(感谢评论者!):

 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <containerNameOrId>

原文由 OscarAkaElvis 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题