ruby - 从Docker公开/发布端口

标签 ruby rest docker sinatra dockerfile

我在docker容器中运行了一个小的REST API:

[2015-10-15 10:47:05] INFO  WEBrick 1.3.1
[2015-10-15 10:47:05] INFO  ruby 2.2.3 (2015-08-18) [x86_64-linux]
[2015-10-15 10:47:05] INFO  WEBrick::HTTPServer#start: pid=8 port=9292

我在IP上有Docker VM:
192.168.99.100

我正在尝试发布/公开我的端口:
docker run --publish 9292:9292 788a36b503e2

Docker ps显示:
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
9d6b34469ebf        788a36b503e2        "/bin/sh -c 'rackup -"   45 seconds ago      Up 44 seconds       0.0.0.0:9292->9292/tcp   hopeful_bhaskara

我正在尝试使用REST API:
 curl 192.168.99.100:9292/auth/3/xyz

但仍然出现错误:
 curl: (7) Failed to connect to 192.168.99.100 port 9292: Connection refused

知道为什么吗?谢谢

最佳答案

你之前这么说:

I have docker VM on IP:

192.168.99.100



如果您使用VirtualBox for VM,并且要访问本地计算机上的该URL(http://localhost:9292),则需要在VirtualBox上进行端口转发以访问VM。

警告:如果您的VM具有防火墙(例如ufw),请禁用它。 (sudo ufw disable)

请按照以下步骤进行端口转发。
  • 在本地计算机上打开VirtualBox GUI。
  • 在虚拟机列表中找到您的VM,然后从顶部导航列表中选择Settings
  • 单击顶部导航上的“网络”图标
  • 选择端口转发
  • 单击右上角的“添加规则”图标,并填写主机端口9292和访客端口9292
  • 单击“确定”,然后单击“确定”,然后设置转发。

  • 现在,您可以在本地计算机上访问http://localhost:9292

    关于ruby - 从Docker公开/发布端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33146606/

    相关文章:

    rest - 格式不正确的POST正文的HTTP状态代码

    java - 用于 Jersey 使用的(哈希) map 的序列化程序?

    c# - 在 Docker 上调试会抛出错误

    docker - 在 docker run 命令中更改 ulimit 值

    Ruby-Graphviz 不渲染 png

    ruby - sidekiq - 并发 > 50 稳定吗?

    ruby - 是 &method( :method_name) idiom bad for performance in Ruby?

    ruby - 如何在 Ruby pg gem 中使用 PG::Connection 类的 send_query?

    web-services - Camel 和 BPEL 的区别

    docker - 如何在travis-ci上预安装软件?