如何连接到 Docker Toolbox 中托管的容器?
How do I connect to a container hosted in Docker Toolbox?
我正在尝试 运行 我的 ASP.NET 核心 1.1 网络 API 在 Docker 容器中,但我无法连接到网络 API浏览器或 curl
。为了排除故障,我还启动了标准的 nginx 和 Apache httpd 容器,但也无法连接到这些容器,所以我认为这是一个 Docker/Docker Toolbox/configuration 问题,而不是我的应用程序的问题。
我将重点介绍我使用 nginx 和 Apache 所做的工作:
我正在 运行ning Docker Toolbox Windows 7 Professional,一切似乎都如我所料。
- Docker 命令都按预期工作
- 我可以访问底层 Windows 文件系统
- 我可以从
curl http://localhost
得到预期的结果(如果我在 Windows 7 上启动默认的 IIS 网站)
所以现在我关闭了容器中的 IIS 和 运行 nginx:
$ docker run -d -p 80:80 nginx
45bb1f373c11b820d8431de3eb3bf222d57d412de53e8625f461b62c4279e644
Docker 现在显示 nginx 运行ning:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45bb1f373c11 nginx "nginx -g 'daemon off" 47 seconds ago Up 48 seconds 0.0.0.0:80->80/tcp, 443/tcp admiring_pike
但我无法连接 curl
(在 Docker 工具箱命令提示符下)或 Windows 中的 Web 浏览器:
$ curl http://localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
如果我 运行 Apache 2.4 (httpd) 容器,我会得到完全相同的结果。
有什么想法吗?谢谢!彼得
我在另一个问题中找到了答案。
因为 Docker Toolbox 运行 在轻量级 Linux VM 上,它有自己的 IP 地址。需要使用 DOCKER_HOST
将 localhost
映射到 VM 或通过其 IP 地址访问 VM,使用以下命令找到:
docker-machine ip default
由于您运行正在使用 VM,因此您需要遵循 here 中的 docker 文档。
之后 运行 下面的命令检查你的 VM 的 IP 地址。
docker-machine ip default
启动nginx,在浏览器中点击[ip default address]:port。有用!
我正在尝试 运行 我的 ASP.NET 核心 1.1 网络 API 在 Docker 容器中,但我无法连接到网络 API浏览器或 curl
。为了排除故障,我还启动了标准的 nginx 和 Apache httpd 容器,但也无法连接到这些容器,所以我认为这是一个 Docker/Docker Toolbox/configuration 问题,而不是我的应用程序的问题。
我将重点介绍我使用 nginx 和 Apache 所做的工作:
我正在 运行ning Docker Toolbox Windows 7 Professional,一切似乎都如我所料。
- Docker 命令都按预期工作
- 我可以访问底层 Windows 文件系统
- 我可以从
curl http://localhost
得到预期的结果(如果我在 Windows 7 上启动默认的 IIS 网站)
所以现在我关闭了容器中的 IIS 和 运行 nginx:
$ docker run -d -p 80:80 nginx
45bb1f373c11b820d8431de3eb3bf222d57d412de53e8625f461b62c4279e644
Docker 现在显示 nginx 运行ning:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45bb1f373c11 nginx "nginx -g 'daemon off" 47 seconds ago Up 48 seconds 0.0.0.0:80->80/tcp, 443/tcp admiring_pike
但我无法连接 curl
(在 Docker 工具箱命令提示符下)或 Windows 中的 Web 浏览器:
$ curl http://localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
如果我 运行 Apache 2.4 (httpd) 容器,我会得到完全相同的结果。
有什么想法吗?谢谢!彼得
我在另一个问题中找到了答案
因为 Docker Toolbox 运行 在轻量级 Linux VM 上,它有自己的 IP 地址。需要使用 DOCKER_HOST
将 localhost
映射到 VM 或通过其 IP 地址访问 VM,使用以下命令找到:
docker-machine ip default
由于您运行正在使用 VM,因此您需要遵循 here 中的 docker 文档。
之后 运行 下面的命令检查你的 VM 的 IP 地址。
docker-machine ip default
启动nginx,在浏览器中点击[ip default address]:port。有用!