【问题标题】:Docker Container not accessible through Container IP无法通过容器 IP 访问 Docker 容器
【发布时间】:2018-09-07 11:19:58
【问题描述】:

我已经为 Windows 10 64 位安装了 Docker “Docker for Windows Installer”。我已经将 hyper -v 作为默认的虚拟系统运行。

我有几个问题。

  1. 如果我安装了带有虚拟框的 docker。我需要通过命令行创建 docker-machine 但是当我使用 hyper -v 时。我不需要 docker-machine 来安装。我认为它是在使用 hyper-v 时自动安装的。(我假设是因为我尝试了 hello world 示例。它正在提取图像并创建容器)。但在“hyper-v”的情况下,我无法检查 docker-machine 的 ip 是什么。

C:\Users\indiverkumar>docker-machine ip

错误:未指定机器名称且不存在“默认”机器

如果是虚拟盒子。我必须自己创建 docker-machine(docker-machine create default)。因此,当我尝试获取 docker-machine 的 IP 地址时。它显示了我的IP地址。

问题:如果是 hyper-v,我如何获取 docker-machine 的 IP 地址。 问题:当我尝试检查 docker 容器的 IP 地址时(Mario Docker Image) by docker inspect container_id。它显示的是 172.17.0.2。但是当我尝试检查时172.17.0.2:8080.(启动的容器是运行在8080端口的tomcat Web应用程序)。无法访问。即使我已经禁用了防火墙。

如果我没有用 docker 机器映射端口。它应该在容器 IP 的帮助下工作。但它不起作用。(检查 172.17.0.2:8080 后)

映射端口后,我必须有两个 IP 地址,一个是本地主机(正在工作),另一个是在 docker-machine IP 的帮助下。 像这样 http://localhost:8080http://host-ip:8080

总结

我假设每个 Docker 容器都应该可以从 localhost /host-ip/container-ip 访问。

【问题讨论】:

    标签: docker


    【解决方案1】:

    不,Docker 的工作方式是您可以打开容器上的端口,以便您在主机地址上使用它们。


    示例: 创建一个 docker 容器,开放 tcp 端口为 8080,然后在 8080 端口上运行一个 Web 服务器(例如 Django、Express、Gin),然后转到 :8080 并查看应用程序。

    【讨论】:

    • 是的。我已经打开了端口。但是使用 localhost 我可以访问它。所以应该可以通过host-ip和container-ip访问。你不觉得。我刚刚检查了一个未解决的问题,即 windows 10 64 位中的 hyper-v docker nat 以太​​网适配器没有显示 IP 地址,并且当我检查了 ipconfig 时。 DockerNAT 以太网适配器显示为空的默认网关。这可能是我无法通过容器 ip 和 hostip 访问的原因吗
    • Docker 有几种内置的网络模式和使用其他驱动程序的可能性docs.docker.com/network
    猜你喜欢
    • 2022-06-29
    • 2020-02-02
    • 1970-01-01
    • 2019-10-05
    • 2018-04-21
    • 2022-11-02
    • 2022-11-01
    • 2016-03-18
    相关资源
    最近更新 更多