2016-11-07 68 views
1

我是TeamCity和Docker的全新品牌。我正在努力得到一個TeamCity在我的本地機器上運行並可用的Docker容器。我已經嘗試了幾件事情,但無濟於事:獲取TeamCity在Docker上運行

我按照說明安裝了Docker for Mac here。然後我試圖運行下面的命令,記錄here,用於搬運工設置的TeamCity:

docker run -it --name teamcity-server-instance \ 
    -v c:\docker\data:/data/teamcity_server/datadir \ 
    -v c:\docker\logs:/opt/teamcity/logs \ 
    -p 8111:8111 \ 
    jetbrains/teamcity-server 

即返回以下錯誤:搬運工:從守護程序錯誤響應:無效綁定安裝規格「C:dockerdata:/數據/ teamcity_server/datadir「:無效模式:/ data/teamcity_server/datadir。

採取了不同的策略,我試圖按照指示here - 我試圖運行下面的命令:

docker run -it --name teamcity -p 8111:8111 sjoerdmulder/teamcity 

終端表示,它已開始了一個Web服務器,但我無法瀏覽到它在localhost上,也不在localhost:8111上(錯誤ERR_SOCKET_NOT_CONNECTED沒有端口,而ERR_CONNECTION_REFUSED與端口有關)。

由於使用docker run命令的網站聲稱通過Docker Toolbox安裝Docker,因此我將它安裝在它們指向的位置(here)。然後我嘗試了

docker-machine ip default 

命令他們建議,但它沒有工作,錯誤「主機不存在:」默認「」。這是有道理的,因爲網站上說「默認」虛擬機將通過運行Docker Quickstart創建,我沒有這樣做,但他們沒有提供任何鏈接到Docker Quickstart,所以我不知道他們在說什麼關於。

,試圖獲得該容器上運行的IP地址,我想這個命令

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) 

列出的運行容器的名稱,每個名稱後跟一個連字符,然後什麼。我也試過

docker ps -a 

,上市運行contaners還可以,但沒有給IP。此外,該端口是空白的,並且狀態顯示「4分鐘前已退出(130)」,所以看起來容器在啓動後並不活躍。

我還與80端口再次嘗試,希望這將使該網站顯示在本地主機:

docker run -it --name teamcity2 -p 80:80 sjoerdmulder/teamcity 

所以在這一點上,我完全摸不着頭腦並阻止 - 我不能在啓動服務器都遵循hub.docker.com上的說明,我無法弄清楚如何瀏覽到啓動其他說明的網站。

我會非常感謝您的幫助!

回答

2

JetBrains現在爲TeamCity提供official docker images。我會建議從這些開始。

示例命令在他們的TeamCity server圖像看起來像這樣

docker run -it --name teamcity-server-instance \ 
    -v <path to data directory>:/data/teamcity_server/datadir \ 
    -v <path to logs directory>:/opt/teamcity/logs \ 
    -p <port on host>:8111 \ 
    jetbrains/teamcity-server 

這看起來很像你的第一次嘗試。但是,c:\docker\data是Windows文件路徑。你說你在Mac上運行這個,所以這絕對不行。

一旦TeamCity啓動,它應該在端口8111上可用。這就是命令的一部分-p 8111:8111。它將您機器上的端口8111映射到VM的Docker for Mac中的端口8111以創建容器。 ERR_CONNECTION_REFUSED可能是由幾件事情引起的。兩種最可能的可能性是

  1. TeamCity可能需要一些時間才能啓動,也許你沒有給它足夠的時間。解決方案是等待。
  2. -it將以交互模式啓動TeamCity容器。如果您退出運行命令的終端窗口,容器也可能會終止並且無法訪問。解決方法是不要關閉窗口或在模式下運行容器。

有適用於Mac和碼頭工人工具箱泊塢窗之間的差異一個很好的概述:Docker for Mac vs. Docker Toolbox。你不需要兩者,在大多數情況下,你會想使用Docker for Mac來測試本地的東西。

+0

謝謝!我對Mac也是新手,並且忘記了路徑的指定有所不同。它現在在8111端口上運行良好! – user756366

+0

太棒了,它是否正確地使用映射路徑工作,還是你必須改變其他東西? – R0MANARMY

+0

我只是必須改變我原先發布的命令中的路徑,然後才能正常工作。謝謝! – user756366