我正在尝试在 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 下没有创建任何内容。 我已经创建了该文件夹,但它仍然是空的。
当我现在停止并删除容器并再次启动它时, Jenkins 已经丢失了我之前所做的一切。
我做错了什么?
最佳答案
使用 Docker Toolbox,docker 镜像实际上并不在 Windows 计算机“上”运行,而是在 Windows 计算机上创建的虚拟机上运行。
看起来主机安装的卷确实对 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 目录创建了一个单独的 docker 容器,允许您删除/升级/等 jenkins 容器而不影响您的数据。
不过,请确保您了解这里发生的情况。读: https://docs.docker.com/engine/tutorials/dockervolumes/
jenkins docker-image 文档中也提到了这一点: https://hub.docker.com/_/jenkins/
或者:在需要时“停止”并“重新启动”容器是否可以接受? - 在这种情况下,您不需要主机安装的目录。在这种情况下,只需省略 -v 选项即可。这确实使备份数据或使用更新的 jenkins 镜像变得困难。
关于jenkins - Docker 不会将数据保存在主机安装的卷中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329557/