Docker不会在主机安装的卷中保存数据

时间:2016-10-30 13:20:24

标签: jenkins docker volume docker-toolbox

我试图在Windows 7上使用Docker Toolbox在docker容器中启动jenkins。

我跑

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "//C/Users/myname/.jenkins:/var/jenkins_home" jenkins  

jenkins很好地启动,但是在C:/Users/myname/.jenkins下没有创建任何东西。 我已经创建了该文件夹,但它仍然是空的。

当我现在停下来取下容器并重新开始时,詹金斯已经失去了我之前所做的一切。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

使用Docker Toolbox,docker图像实际上并没有在'上运行。你的Windows机器,而是在你的Windows机器上创建的虚拟机上。

似乎主机安装的卷在Windows上对Docker Toolbox有一些警告。例如见:

也许这里有一些提示可以帮助你让它发挥作用。

如果您确实希望数据在容器之间保持不变,即使在删除jenkins容器之后,您也可以使用jenkins homedir的数据卷。在这种情况下,你将启动jenkins如下:

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "/var/jenkins_home" jenkins

这基本上为/ var / jenkins_home目录创建了一个单独的docker容器,允许你删除/升级/等jenkins容器,而不会影响你的数据。

请确保您了解此处发生了什么。读: https://docs.docker.com/engine/tutorials/dockervolumes/

这在jenkins docker-image文档中也有提及: https://hub.docker.com/_/jenkins/

另外:只是“停止”可以接受吗?并且'重新启动'容器何时需要? - 在这种情况下,您不需要安装主机的目录。在这种情况下,只需省略-v选项。这确实使得备份数据或使用较新的jenkins图像变得困难。

答案 1 :(得分:1)

我没有设法使用docker控制台执行此操作,但是可以在Docker Toolbock中使用Kitematic。 在卷选项卡中,您可以将本地文件夹作为卷添加到容器中。 Jenkins文件按预期显示在本地文件夹中。