[英]Docker container running but can't view in browser
我是Docker的新手,正在尝试在Docker中运行ruby应用程序。 因此,我创建了一个可以正常运行的红宝石应用程序,还创建了一个映像和一个泊坞窗,当我运行并构建它们时,它运行得很好。 运行docker后,它显示为运行正常,我从docker inspect
获取了一个IP,并在docker ps -a
中将端口显示为3000。
当我在浏览器中打开IP:port时,我什么也看不到。
这是我的码头工人文件:
> FROM ruby:latest
>
> # Set the working directory to /app WORKDIR /app
>
> # Copy the current directory contents into the container at /app ADD . /app
>
> RUN echo 'debconf debconf/frontend select Noninteractive' |
> debconf-set-selections RUN apt-get update \
> && DEBIAN_FRONTEND=Noninteractive apt-get install -y \
> sqlite3 \
> thin \
> nodejs \
> apt-utils \
> && bundle install
> # --no-install-recommends apt-utils sudo
>
>
> #RUN sudo -H cp config/initializers/rack_attack.rb config/initializers/rack_attack.rb
>
> # Install any needed packages specified in requirements.txt
> # RUN pip install -r requirements.txt
> EXPOSE 3000
>
> CMD ["bundle", "exec", "rails", "server"]
编辑:
我也尝试使用“ Expose 3000 ”,也使用“ -p”标志运行。
当我运行'docker ps -a'时, 端口是:' 0.0.0.0 : 32768->3000/tcp '。
对于``码头工人检查'',我得到的IP是 :``172.17.0.2''
但是当我在浏览器中转到“ http://172.17.0.2:3000/ ”时,我什么也看不到。
新编辑
我发现Docker以tcp6(IPv6)的身份运行,如何将其配置为tcp? 。
我发现了问题。 解决方案是将docker作为生产而不是作为开发来运行。
在Dockerfile中 ,而不是:
CMD ["bundle", "exec", "rails", "server"]
我改为:
CMD ["bundle", "exec", "rails", "server", "-e", "production"]
那解决了我的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.