无法从主机连接到Docker容器

只是第一次使用Docker,所以我很可能犯了一个菜鸟的错误,但是在这里。 我正在尝试使用reactioncommerce/reaction图像,它似乎运行正常。 但是,我似乎无法从主机连接到服务器。

我正在运行docker run -p :8080 -it reaction如在Docker Hub页面上build议的,然后尝试通过在主机上的浏览器上访问http://localhost:8080来访问它,但是不能build立连接。 我哪里错了?

我在Linux Mint主机上运行。

我认为你的问题将是你的-p ( 发布 )标志。 假设你的容器实际上正在监听端口8080 – 尝试-p 8080:8080这将映射localhost:8080到你的容器。 (好吧,从技术上讲它会映射0.0.0.0:8080这是所有地址 – 包括外部)

但是我认为如果你没有在左边指定一些东西,你会得到一个随机的端口号映射 – 你应该能够在docker ps看到这个或者使用docker port命令。

当你运行docker run -it你会以交互方式启动它,除非你另有指定,否则它应该启动“docker文件中定义的任何东西”。 我认为这将是一个你想要的服务,但我不知道这个应用程序。 您也可以使用在后台运行容器的-d标志。

我相信这个命令将起作用:

 docker run -p 127.0.0.1:8080:8080 -it reaction 

我试图用本地web服务器做同样的事情,但是不能使用localhost连接到我的容器,直到我将地址127.0.0.1添加到我的-p命令。

您的/etc/hosts文件应该包含以下条目:

 127.0.0.1 localhost 

这将解决域localhost允许您使用它来访问您的服务器。