[英]Can't access the dockerized app launched from the command line from outside
我已經使用Ruby和一些gems構建了一個Docker鏡像,以此作為我項目的起點。 可在以下位置jikkujose/trial
它: jikkujose/trial
。 我正在使用默認的docker-toolbox在Mac中進行嘗試。
我正在嘗試使用它來托管單個文件應用程序。 我按如下方式啟動它:
docker run -itdP -v .:/app jikkujose/docker
當前目錄包含一個文件app.rb
,其中包含以下內容:
require 'sinatra'
class App < Sinatra::Base
set :bind, "0.0.0.0"
get '/' do
'This is interesting :)'
end
end
App.run!
我可以附加到容器上以啟動應用程序。 當我這樣做時,將看到以下內容: docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92498cafd985 jikkujose/trial "/bin/bash" 18 seconds ago Up 18 seconds 0.0.0.0:32780->4567/tcp boring_meitner
我正在嘗試使用通過docker-machine ip default
獲取的ip訪問應用程序。
嘗試使用curl
訪問應用程序時,出現以下情況:
curl: (7) Failed to connect to 192.168.99.100 port 32780: Connection refused
Failed to connect to 192.168.99.100 port 32780: Connection refused
這應該意味着沒有偵聽器,或者由於docker exec <container id> curl http://localhost:4567
確實起作用,所以偵聽器不接受來自廣播的查詢,僅接受來自本地主機的查詢...
您的入口點和cmd為 :
ENTRYPOINT ["/opt/rubies/ruby-2.2.2/bin/ruby"]
CMD ["/app/app.rb"]
檢查是否有其他人打算啟動sinatra應用程序在docker環境下更好地工作:例如“使用docker和fig進行簡單的Sinatra應用程序Docker化 ”(fig是docker compose的舊名稱)
在此之前,請檢查是否在VirtualBox級別轉發了映射的端口:
VBoxManage controlvm boot2docker-vm natpf1 "name,tcp,127.0.0.1,32780,,32780"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.