docker - Docker容器的IP - Virtualbox + Windows

标签 docker vagrant virtualbox

在 Windows 计算机上,我可以使用什么 IP 地址作为 Virtual Box 上虚拟机内运行的 Docker 容器的 IP?

我有:

  • Windows 10 计算机
  • 与 Ubuntu VM 一起安装的 Virtualbox
  • 已安装 Docker
  • 以及一个使用端口 80/443 运行的容器

在虚拟机上我可以运行 docker 命令并查看容器正在运行

vagrant@ubuntu-xenial:~$ docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                                      NAMES
e7a41b3edecd        nrel/api-umbrella   "api-umbrella run"   17 minutes ago      Up 17 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   api-umbrella
vagrant@ubuntu-xenial:~$

该容器的IP是:

vagrant@ubuntu-xenial:~$ docker inspect e7a41b3edecd | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
vagrant@ubuntu-xenial:~$

我可以 ping IP 172.17.0.2 并 curl http://172.17.0.2在虚拟机本身上。但是当尝试http://172.17.0.2时在 Windows 机器上我没有反应。

问题 - 我应该从 Windows 计算机使用什么 IP 来获取在虚拟机上运行的 Docker 容器?

最佳答案

为了将 Docker IP 暴露给主机,您需要将虚拟机网络设置设置为“桥接适配器”。

我使用 macOS,但我认为在 Windows 中也是一样的。

enter image description here

之后,检查您的虚拟机 IP。例如,如果您的虚拟机 IP 192.168.30.100,并且您的 docker 在端口 8000 中运行。现在您可以从主机通过 IP 192.168.30.100:8000 访问您的 docker。

关于docker - Docker容器的IP - Virtualbox + Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51621813/

相关文章:

ruby - rbenv vagrant global ruby​​ 版本不变

vagrant - 如何使用 vagrant 1.6 和 docker 提供者映射 docker 端口

windows - 没有内核模块错误,无法在 VirtualBox 中启动 Windows 客户机

windows - 为什么删除 docker 容器和图像不会释放 Windows 上的存储空间?如何解决?

docker - 如何在主机中执行Linux命令并将输出复制到docker文件构建的镜像中?

docker - 限制 nvidia-docker 中的 GPU 使用?

php - 如何使用 phpStorm 调试我的 docker 容器

nginx - 为什么这个 Nginx conf 允许访问其他主机名/端口上的 Gitlab?

php - 使用虚拟机在端口 9000 上进行 XDebug - EADDRINUSE:::9000

sql - 如何使用 Windows 身份验证登录 SQL Server