当在Virtual Box中的Ubuntu虚拟机上运行一个Docker容器时,我应该使用什么IP地址来访问容器?
我的环境为:
- Windows 10机器
- 已安装Virtualbox,并在其中安装了Ubuntu虚拟机
- 在虚拟机中安装了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。但是在Windows机器上尝试访问http://172.17.0.2时没有响应。 问题: - 在Windows机器上,我该使用哪个IP地址来访问运行在虚拟机上的Docker容器?
docker inspect
来查找它们:在像你遇到的情况下,它们无法路由,并且有更好的方法可以访问容器。 - David Mazedocker run -p
或 Docker Compose 的ports:
指令(如@BrayanCaldera的回答中所述),并在发布的端口上连接到虚拟机的IP地址(如@HanaAlaydrus的回答中所述)。 - David Maze