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

标签 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 下没有创建任何内容。 我已经创建了该文件夹,但它仍然是空的。

当我现在停止并删除容器并再次启动它时, Jenkins 已经丢失了我之前所做的一切。

我做错了什么?

最佳答案

使用 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 镜像变得困难。

关于jenkins - Docker 不会将数据保存在主机安装的卷中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329557/

相关文章:

jenkins - 如何以编程方式触发通过 github-organization 管理的特定 jenkins 构建?

docker-compose 在初始启动时命名卷复制内容

node.js - 如何运行 node.js docker 实例并放入自动跟踪日志的 shell

windows - 从卷偏移或扇区获取文件名(Windows)

当容器重新启动时,docker 中的 Jenkins 会丢失配置

git - 标记多个提交的替代方案

spring-boot - Zipkin 无法在 Docker 中工作 - 连接被拒绝

ios - 获取设备音量 - 问题

amazon-web-services - Terraform - AWS - 如何防止 EBS 卷被删除?

docker - 从Jenkins运行Docker Build,用参数替换Dockerfile中的硬编码输入