-1

我正在尝试在 VM 中的 Docker 中运行 GoCD 服务器。为了测试设置,我在 VirtualBox 中创建了一个 Ubuntu 14.04 服务器,安装了 Docker,然后按照以下说明进行操作

https://github.com/gocd/gocd-docker & https://hub.docker.com/r/gocd/gocd-server/我跑了: docker run -tiP gocd/gocd-server

这行得通,但问题是如果我关闭终端(我必须在生产中这样做,因为我不能无限期地保持 SSH 终端打开),服务器就会死掉。我可以通过打开另一个终端到 VM 并运行 docker PS 来获取该服务器正在运行的端口。我能够从我的浏览器访问那个。当然,我需要一个允许我关闭终端的解决方案。

所以我再次尝试(在一个新的 VM 中),按 Ctrl+C,等待它关闭,然后运行:

docker rename randomDockerName gocd-server

接着

docker start gocd-server docker ps

然后我看到类似的东西

randomLetters gocd/gocd-server "/sbin/my_init" 25 minutes ago Up 10 minutes 0.0.0.0:32773->8153/tcp, 0.0.0.0:32772->8154/tcp gocd-server

所以我将我的 Ubuntu 14.04 主机上的 chrome 指向 ipaddress:32773 ,但我什么也没得到。现在,当 docker 映像与 docker run 一起运行时,它工作得很好,那么为什么这不能与 docker start 一起工作呢?我不能再次使用 run 因为这会创建一个新的 docker 映像,我必须保持终端打开以保持服务器运行。

所以我的问题是,我如何在虚拟机上的 Docker 中运行 GoCD 而不必保持登录到该虚拟机?

此外,Ubuntu VM 在 VirtualBox 中配置了 NAT 和桥接网卡。

4

1 回答 1

2

如果您的应用程序确实需要一个开放的终端,您可以安装screen. 使用该工具,您可以在关闭 ssh 连接之前与该进程分离。下次重新连接时,您可以附加回该进程以取回终端。

另一种可能性是使用-d标志在后台运行您的容器:

docker run -d -P gocd/gocd-server
于 2015-08-25T11:19:53.087 回答