2015-08-24 31 views
-1

我想在VM中的Docker中运行GoCD服务器。为了测试我创建了VirtualBox的一个Ubuntu 14.04服务器设置,安装泊坞窗,然后按照从GoCD服务器如何在Docker中持久运行以在VM中运行?

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

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

于是我又试了一次(在一个新的虚拟机),然后按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

因此,我将我的Chrome在我的Ubuntu 14.04主机上指向ipaddress:32773,我什么也没得到。现在,当docker镜像运行docker run时,这工作得很好,那么为什么docker的这个工作没有启动呢?我不能再次使用run,因为这会创建一个新的docker镜像,并且必须保持终端处于打开状态才能保持服务器正常运行。

所以我的问题是,如何在VM上的Docker中运行GoCD而无需保持登录到该VM?

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

+0

嗯,我觉得很傻。我只需要按Ctrl + p + Ctrl + q按照http://stackoverflow.com/questions/19688314/how-do-you-attach-and-detach-from-dockers-process –

+0

你看过' docker run --restart = always'?请参阅文档https://docs.docker.com/reference/commandline/run/ – user2915097

回答

2

如果您的应用程序确实需要打开终端,您可以安装screen。使用该工具,您可以在关闭ssh连接之前从该进程中分离出。下次您重新连接时,您可以重新连接到该流程以获取终端。

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

docker run -d -P gocd/gocd-server