gpt4 book ai didi

ruby - 无法从外部访问从命令行启动的dockerized应用

转载 作者:行者123 更新时间:2023-12-02 20:25:55 25 4
gpt4 key购买 nike

我已经用Ruby和一些gems构建了一个Docker镜像,以此作为我项目的起点。可在以下位置找到它:jikkujose/trial。我正在使用默认的docker-toolbox在Mac中进行尝试。

我正在尝试使用它来托管单个文件应用程序。我按如下方式启动它:
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

最佳答案

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"]

检查其他人是否打算启动sinatra应用程序在docker环境中会更好:例如“ Dockerizing simple Sinatra app using docker and fig”(fig是docker compose的旧名称)

在此之前,请检查映射的端口是否为 forwarded at the VirtualBox level:
VBoxManage controlvm boot2docker-vm natpf1 "name,tcp,127.0.0.1,32780,,32780"

关于ruby - 无法从外部访问从命令行启动的dockerized应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33170150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com