获取在Docker上运行的TeamCity

我对TeamCity和Docker都是全新的。 我努力得到一个TeamCity在我的本地机器上运行和使用的Docker容器。 我已经尝试了几件事情,但没有成功:

我在这里安装了Docker for Mac。 然后我尝试运行下面的命令, 在这里logging ,在docker中设置teamcity:

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

这返回了以下错误:docker:来自守护进程的错误响应:无效的绑定安装规范“c:dockerdata:/ data / teamcity_server / datadir”:invalid mode:/ data / teamcity_server / datadir。

采取不同的方法,我试图按照这里的说明 – 我试着运行以下命令:

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

terminal表示它正在启动一个Web服务器,但是我不能在本地主机上访问它,也不能在localhost:8111(错误ERR_SOCKET_NOT_CONNECTED没有端口,而ERR_CONNECTION_REFUSED与端口)。

由于使用docker run命令的网站声称通过Docker Toolbox安装Docker,所以我将它安装在它们指向的位置( 这里 )。 我然后尝试了

  docker-machine ip default 

他们build议的命令,但它没有工作,错误“主机不存在:”默认“”。 这是有道理的,因为该网站说,“默认”虚拟机将通过运行Docker快速启动创build,我没有这样做,但他们没有提供任何链接到Docker快速启动,所以我不知道他们在说什么关于。

尝试获取容器运行的IP地址,我试过这个命令

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

列出了正在运行的容器的名称,每个容器后跟一个连字符,然后什么也不是。 我也试过了

  docker ps -a 

那上面列出的运行contaner,但是没有给IP。 另外,这个端口是空白的,并且状态显示“4分钟前退出(130)”,所以看起来容器在启动后并没有活着。

我也尝试了80端口,希望这将使该网站在本地主机上显示:

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

所以在这一点上,我完全困惑和阻止 – 我无法启动服务器根据hub.docker.com上的说明,我不知道如何浏览到启动的网站其他指令。

我会非常感谢您的帮助!

JetBrains现在为TeamCity提供官方docker图像 。 我会build议从那些开始。

TeamCity 服务器映像中的示例命令如下所示

 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文件path。 你说你在Mac上运行这个,所以这绝对不会工作。

一旦TeamCity启动,它应该在-p 8111:8111端口上可用。这就是命令的一部分-p 8111:8111 。 它将您的机器上的端口8111映射到VM的Docker中的端口8111创build运行您的容器。 ERR_CONNECTION_REFUSED可能是由几件事情引起的。 两种最可能的可能性是

  1. TeamCity可能需要一点时间启动,也许你没有足够的时间。 解决方法是等待。
  2. -it会以交互模式启动TeamCity容器。 如果您从运行命令的terminal窗口中退出,容器也可能终止,并且将无法访问。 解决方法是不要closures窗口或以分离模式运行容器。

Docker for Mac和Docker Toolbox在这里有一个很好的概述: Docker for Mac和Docker Toolbox 。 你不需要两者,在大多数情况下,你会想使用Docker for Mac来testing本地的东西。