Docker不会将数据保存在主机安装的卷中
我试图在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下没有创build任何东西。 我已经创build了文件夹,但它保持空白。
当我停下来取出容器并重新开始时,jenkins失去了我之前所做的一切。
我究竟做错了什么?
使用Docker工具箱,Docker镜像实际上不会在Windows机器上运行,而是在Windows机器上创build的虚拟机上运行。
看来主机安装的卷在Windows上有Docker Toolbox的一些注意事项。 看例如:
- https://github.com/docker/docker/issues/23005
- https://forums.docker.com/t/volume-mounts-in-windows-does-not-work/10693/26
也许这里有一些提示,可以帮助你把它工作。
如果您希望数据在容器之间保留,即使在删除jenkins容器后,您也可以为jenkins homedir使用数据卷。 在这种情况下,你会开始jenkins如下:
docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "/var/jenkins_home" jenkins
这基本上为/ var / jenkins_home目录创build了一个单独的docker容器,允许您在不影响数据的情况下删除/升级/ jenkins容器等。
尽pipe确定你明白这里发生了什么。 阅读: https : //docs.docker.com/engine/tutorials/dockervolumes/
这也是在jenkins docker-image文档中提到的: https ://hub.docker.com/_/jenkins/
另外:只要你需要,只需“停止”和“重新启动”容器,是否可以接受? – 在这种情况下,您不需要安装主机的目录。 在这种情况下,只需省略-v选项。 这确实很难备份您的数据,或者使用更新的jenkins图片。
我没有设法使用docker控制台,但是可以在Docker Toolbock中使用Kitematic。 在“卷”选项卡中,可以将本地文件夹作为卷添加到容器中。 Jenkins文件按预期出现在本地文件夹中。