让TeamCity在Docker上运行

让TeamCity在Docker上运行,docker,teamcity,Docker,Teamcity,我对TeamCity和Docker都是全新的。我正在努力获得一个Docker容器,使TeamCity能够在我的本地机器上运行和使用。我试过几种方法,但都没有效果: 我按照说明为Mac安装了Docker。然后,我尝试运行以下命令(已记录),用于在docker中设置teamcity: docker run -it --name teamcity-server-instance \ -v c:\docker\data:/data/teamcity_server/datadir \

我对TeamCity和Docker都是全新的。我正在努力获得一个Docker容器,使TeamCity能够在我的本地机器上运行和使用。我试过几种方法,但都没有效果:

我按照说明为Mac安装了Docker。然后,我尝试运行以下命令(已记录),用于在docker中设置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
返回以下错误:docker:daemon的错误响应:无效绑定装载规范“c:dockerdata:/data/teamcity\u server/datadir”:无效模式:/data/teamcity\u server/datadir

采取不同的策略,我尝试按照说明操作-我尝试运行以下命令:

    docker run -it --name teamcity -p 8111:8111 sjoerdmulder/teamcity 
终端表明它正在启动web服务器,但我无法在localhost或localhost:8111上浏览到它(错误ERR_SOCKET_NOT_CONNECTED with The port,错误ERR_CONNECTION_with The port)

因为带有docker run命令的网站说要通过docker Toolbox安装docker,所以我在他们指向的位置()安装了它。然后我试了一下

    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,希望能让站点在localhost上显示:

    docker run -it --name teamcity2 -p 80:80 sjoerdmulder/teamcity
因此,在这一点上,我完全困惑和受阻-我根本无法按照hub.docker.com上的说明启动服务器,我也不知道如何浏览到使用其他说明启动的站点

我将非常感谢任何帮助

JetBrains现在为TeamCity提供服务。我建议从这些开始

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
docker run-it--name teamcity服务器实例\
-v:/data/teamcity\u server/datadir\
-v:/opt/teamcity/logs\
-p:8111\
jetbrains/teamcity服务器
这看起来很像你的第一次尝试。但是,
c:\docker\data
是一个Windows文件路径。你说你在mac电脑上运行这个,所以这肯定行不通

一旦TeamCity启动,它应该在端口8111上可用。这就是命令的一部分所做的。它将您机器上的端口8111映射到Mac创建的VM Docker中的端口8111以运行您的容器<代码>错误连接被拒绝可能由多种原因造成。最有可能的两种可能性是

  • TeamCity可能需要一段时间才能启动,也许你没有给它足够的时间。解决办法是等待
  • -它将以交互模式启动TeamCity容器。如果从运行命令的终端窗口退出,容器也可能会终止并无法访问。解决方案是不关闭窗口或在模式下运行容器


  • 这里很好地概述了Docker for Mac和Docker Toolbox之间的区别:。您不需要两者兼而有之,而且在大多数情况下,您都希望使用Docker for Mac在本地进行测试。

    谢谢!我也是Mac的新手,忘记了路径的指定是不同的。现在在8111端口工作得很好!很好,它对映射路径是否正常工作,或者您是否必须更改任何其他内容?我只需要更改我最初发布的命令中的路径,然后它就工作了。谢谢