我用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
答案 0 :(得分:0)
Failed to connect to 192.168.99.100 port 32780: Connection refused
这应该意味着没有监听器,或者,因为docker exec <container id> curl http://localhost:4567
确实有效,监听器不接受广播的查询,只接受来自localhost ...
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"