无法访问从外部

时间:2015-10-16 12:08:20

标签: ruby docker

我用Ruby构建了一个Docker镜像,并将一些宝石作为我项目的起点。它可在jikkujose/trial获得。我在Mac上尝试使用默认的docker-toolbox。

我正在尝试使用它来托管单个文件应用。我发布如下:

docker run -itdP -v .:/app jikkujose/docker

当前目录包含一个文件app.rb,其中包含以下内容:

require 'sinatra'

class App < Sinatra::Base
  set :bind, "0.0.0.0"

  get '/' do
    'This is interesting :)'
  end
end

App.run!

我能够附加到容器以启动应用。我这样做时会看到以下内容:docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                     NAMES
92498cafd985        jikkujose/trial     "/bin/bash"              18 seconds ago      Up 18 seconds                 0.0.0.0:32780->4567/tcp   boring_meitner

我正在尝试使用通过docker-machine ip default获得的IP来访问该应用程序。

尝试使用curl访问该应用时,我收到以下信息:

curl: (7) Failed to connect to 192.168.99.100 port 32780: Connection refused

1 个答案:

答案 0 :(得分:0)

Failed to connect to 192.168.99.100 port 32780: Connection refused

这应该意味着没有监听器,或者,因为docker exec <container id> curl http://localhost:4567确实有效,监听器不接受广播的查询,只接受来自localhost ...

您的entrypoint and cmd are

ENTRYPOINT ["/opt/rubies/ruby-2.2.2/bin/ruby"]
CMD ["/app/app.rb"]

检查其他人是否意味着启动sinatra应用程序可以更好地使用docker环境:例如&#34; Dockerizing simple Sinatra app using docker and fig&#34; (图是码头组成的旧名称)

在此之前,检查映射端口是否为forwarded at the VirtualBox level

VBoxManage controlvm boot2docker-vm natpf1 "name,tcp,127.0.0.1,32780,,32780"
相关问题