2017-05-10 32 views
1

我是新的碼頭,我試圖運行ruby​​泊塢窗內的應用程序。 所以我創建了一個運行良好的ruby應用程序,我也創建了一個圖像和一個docker,當我運行並構建它們時它運行得很好。 我運行它的顯示像它的運行沒有問題泊塢窗後,我從docker inspect獲取IP,並在docker ps -a顯示的端口爲3000。碼頭集裝箱運行但無法在瀏覽器中查看

當我打開IP:在瀏覽器中我什麼也看不到的端口。

這裏是我的搬運工文件:

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

編輯:

我也試過 '揭露3000',並與 '-p' 標誌運行。
當我運行'碼頭ps -a'端口是:'0.0.0.0:32768->3000/tcp'。
對於「泊塢窗檢查」我得到的IP:「172.17.0.2」

但是當我去「http://172.17.0.2:3000/」在瀏覽器中我什麼也看不見。

新的編輯

我disciver碼頭工人正在運行爲tcp6(IPv6)的,我怎麼能 配置它是TCP? 。

+2

如果希望成爲容器外部訪問你需要一個'EXPOSE';請參閱參考資料https://docs.docker.com/engine/reference/builder/#usage – jonrsharpe

+1

您試圖在瀏覽器中訪問的URL是什麼? – JulioHM

+0

@JulioHM我編輯了這個問題。我試圖訪問這個網址:'http://172.17.0.2:3000/' – Evya2005

回答

2

我發現我的問題。 解決方案是運行碼頭作爲生產而不是發展

Dockerfile,而不是:

CMD ["bundle", "exec", "rails", "server"] 

我改成:

CMD ["bundle", "exec", "rails", "server", "-e", "production"] 

解決我的問題

1

在dockerfile加入這一行:

EXPOSE 3000 

另外,如果你想要這個程序是從您的主機,與-p標誌運行時訪問。

有關run文檔,請參閱「General form」。

+0

嗨,我也試着'Expose 3000'。 – Evya2005

+0

我編輯帖子 – Evya2005

+0

根據您的更新似乎端口32768是暴露。嘗試嘗試172.17.0.2:32768 – humblebee