一尘不染

docker-machine:无法从主机访问容器的Web服务器

docker

我刚刚使用自制软件在Mac上使用Docker-
Toolbox安装了Docker:使用自制软件安装了Docker

在使用Rails创建并配置了容器之后,Postgres并启动了docker-compose,一切看起来都很好,但是我无法从主机访问Web服务器。

输出

$ docker-compose up

dummy_1    | I, [2016-03-30T14:55:53.130639 #6]  INFO -- : listening on addr=0.0.0.0:8000 fd=10

当我输入谷歌浏览器的网址http://0.0.0.0:8000/我得到

This site can’t be reached

0.0.0.0 refused to connect.
ERR_CONNECTION_REFUSED

所以我尝试了

$ docker-machine env dummy

具有以下输出:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/choi/.docker/machine/machines/dummy"
export DOCKER_MACHINE_NAME="dummy"

当我尝试使用Chrome浏览器时,http://192.168.99.100:2376我会下载一个空白文件。为什么会这样呢?我希望我的Rails应用程序具有默认的问候页面。


阅读 485

收藏
2020-06-17

共1个答案

一尘不染

192.168.99.100在这种情况下,是您的Docker主机的IP。您需要公开容器的端口,然后才能从外部连接到它。

我不熟悉Docker Compose,但是您发布的日志 表明 暴露了端口8000。因此,请尝试http://192.168.99.100:8000

(之所以http://192.168.99.100:2376不起作用,是因为这是Docker守护程序本身的地址和端口,它不是基于HTTP的。至于0.0.0.0:这是您的Web服务器在容器
内部 侦听的地址,它等同于所有外部连接。但是,如果没有任何端口暴露在外,那就没办法了!)

2020-06-17