2015-10-16 123 views
1

我已经用Ruby和一些gem构建了一个Docker镜像作为我的项目的起点。其可在:jikkujose/trial。我在Mac上尝试使用默认的docker-toolbox。无法访问从外部命令行启动的dockerized应用程序

我正在尝试使用它来托管单个文件应用程序。我启动它,如下所示:

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 
+0

可以肯定的是,docker-machine ip default的输出是什么? – michaelbahr

+0

请同时提供您的'Dockerfile',因为它在docker-hub上不可用。 – michaelbahr

+0

@michaelbahr我没有使用Dockerfile构建它。我使用提交构建。和IP是一样的:'192.168.99.100' –

回答

0
Failed to connect to 192.168.99.100 port 32780: Connection refused 

这应该意味着没有听众,或者,因为docker exec <container id> curl http://localhost:4567没有工作,听者不不接受广播查询,只能从本地主机...

entrypoint and cmd are

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

检查别人的意思发动末日的应用程序将与码头工人的工作环境更好:比如“Dockerizing simple Sinatra app using docker and fig”(图是泊坞窗撰写的旧名)

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

VBoxManage controlvm boot2docker-vm natpf1 "name,tcp,127.0.0.1,32780,,32780" 
+0

我已经做到了;我在暴露的端口上做了一个'curl',并且使用''VM'的'IP'来访问。 –

+0

@JikkuJose我的观点是,当你使用-P时,你不知道哪个端口被实际使用:什么是docker ps -a返回的? – VonC

+0

我知道,我已经提供了'docker ps -a'的输出,并且使用随机选择的端口:'32780'。 (你可以滚动该问题附带的输出来看看它) –

相关问题