2016-03-08 68 views
6

我是Docker的新手,我似乎無法連接到任何容器。無法連接到OSX上的Docker容器

我安裝了Docker Toolbox。現在我試圖讓Shipyard工作。我遵循Docker快速入門終端中的步驟。說明說:

一旦部署,該腳本將輸出URL連同證書信息。

Shipyard available at http://10.0.2.15:8080 
Username: [elided] Password: [elided] 

然而,我去http://10.0.2.15:8080在我的瀏覽器,並沒有連接:

船廠安裝止帶。

在另一個泊塢快速啓動終端,我做了一個docker ps看什麼容器,並獲得其IP地址和我:

$ docker inspect a4755 | grep IPAddress 
      "SecondaryIPAddresses": null, 
      "IPAddress": "172.17.0.8", 
        "IPAddress": "172.17.0.8", 

我不知道爲什麼IP是不同的,但我試圖連接到http://172.17.0.8:8080,這也沒有工作。 http://localhost:8080也失敗了。

這也發生在我試圖運行docker-gunicorn-nginx - 一切都開始了,但我無法連接到機器。

什麼給?

回答

13

如果通過多克的閱讀Installation on Mac OS X你會看到在OSX,Docker容器不主機本身上運行:

在Linux上的碼頭工人安裝時,你的物理機既是本地主機和Docker主機。在網絡中,localhost意味着你的電腦。 Docker主機是容器運行的計算機。

在典型的Linux安裝中,Docker客戶端,Docker守護程序和任何容器直接在本地主機上運行。這意味着您可以使用標準本地主機尋址(如localhost:8000或0.0.0.0:8376)來處理Docker容器上的端口。

[...]

在OS X安裝,碼頭工人守護進程正在運行中一個Linux VM名爲default。默認情況下是一個輕量級的Linux虛擬機,專門用於在Mac OS X上運行Docker守護進程。虛擬機完全從RAM運行,大小僅爲24MB,啓動時間大約爲5s。

在OS X中,Docker主機地址是Linux VM的地址。當您使用docker-machine啓動虛擬機時,會爲其分配IP地址。啓動容器時,容器上的端口映射到VM上的端口。要在實踐中看到這一點,請完成本頁面的練習。

事實上,打開一個新的泊塢快速啓動終端,我看到:

docker is configured to use the default machine with IP 192.168.99.100 

而且,開放http://192.168.99.100:8080帶我到船廠。成功!

3

你可以嘗試執行以下命令:

docker-machine ip default 

它會返回像一些事情:

192.168.99.100 

要獲取端口號:

docker ps 

輸出示例(向右滾動看端口映射):

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES 
113346425f20  springio/spring1 "sh -c 'java $JAVA_OP" 34 minutes ago  Up 34 minutes  0.0.0.0:8080->8080/tcp pensive_kirch 

要驗證它是否工作做:

curl 192.168.99.100:8080

相關問題