加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 由docker容器ERR_CONNECTION_REFUSED

发布时间:2020-12-17 02:09:53 所属栏目:百科 来源:网络整理
导读:我是Docker的新手并试图制作一个演示Rails应用程序.我做了一个看起来像这样的dockerfile: FROM ruby:2.2 # Install apt based dependencies required to run Rails as # well as RubyGems. As the Ruby image itself is based on a # Debian image,we use a
我是Docker的新手并试图制作一个演示Rails应用程序.我做了一个看起来像这样的dockerfile:

FROM ruby:2.2 

# Install apt based dependencies required to run Rails as 
# well as RubyGems. As the Ruby image itself is based on a 
# Debian image,we use apt-get to install those.
RUN apt-get update && apt-get install -y  
  build-essential  
  nodejs

# Configure the main working directory. This is the base 
# directory used in any further RUN,COPY,and ENTRYPOINT 
# commands.
RUN mkdir -p /app 
WORKDIR /app

# Copy the Gemfile as well as the Gemfile.lock and install 
# the RubyGems. This is a separate step so the dependencies 
# will be cached unless changes to one of those two files 
# are made.
COPY Gemfile Gemfile.lock ./ 
RUN gem install bundler && bundle install --jobs 20 --retry 5

# Copy the main application.
COPY . ./

# Expose port 3000 to the Docker host,so we can access it 
# from the outside.
EXPOSE 3000

# The main command to run when the container starts. Also 
# tell the Rails dev server to bind to all interfaces by 
# default.
CMD ["bundle","exec","rails","server","-b","0.0.0.0"]

然后我构建它(没有错误):

docker build -t demo .

然后运行它(也没有错误):

docker run -itP demo
=> Booting Puma
=> Rails 5.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.8.2 (ruby 2.2.7-p470),codename: Sassy Salamander
* Min threads: 5,max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:9292
Use Ctrl-C to stop

当我在一个单独的终端中运行docker ps命令来确定端口时,我得到:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
55e8224f7c15        demo                "bundle exec rails..."   About an hour ago   Up About an hour    0.0.0.0:32772->3000/tcp   ecstatic_bohr

但是,当我尝试使用Chrome或curl命令在http:// localhost:32772或http://192.168.99.100:32772连接到它时,我收到“拒绝连接”.

当我通过bundle exec rails server命令在我的本地机器上的docker之外运行应用程序时,它工作正常.请注意,我在Win7机器上使用Docker Toolbox

我能做错什么?

解决方法

我也花了几个小时这个,这个 thread非常有帮助.我现在正在做的是通过vm的ip地址访问这些服务.

您可以运行您的虚拟机地址:

docker-machine ls

然后尝试使用主机映射端口37772访问您的服务,如下所示:

http://<VM IP ADDRESS>:32772

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读