簡體   English   中英

無法從外部訪問從命令行啟動的dockerized應用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM