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 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |