【问题标题】:How to access /var/jenkins_home in docker?如何在 docker 中访问 /var/jenkins_home?
【发布时间】:2021-02-22 23:36:47
【问题描述】:

我正在转换我当前的 Jenkins 服务器以实现 Docker。按照 github https://github.com/jenkinsci/docker 上的指南,我能够使用以下命令成功启动 jenkins:

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

我不确定如何通过文件资源管理器查看/访问容器/卷中的数据。它只能通过 docker inspect 访问吗? GitHub 中的指南说我应该避免使用从主机上的文件夹到 /var/jenkins/home 的绑定挂载。还有其他方法可以查看和访问我的 jenkins 工作吗?

【问题讨论】:

  • 它说你应该避免它,因为潜在的文件权限问题,可以通过将这些权限授予主机上的 jenkins 用户来解决。但是,据我所知,要检查主机上的文件,您只能使用绑定挂载来查看资源管理器中的文件。
  • 我同意——使用“绑定挂载”,或者更好的是,“卷”。无论如何,让 docker 软件为您工作,并“按照自己的方式”做事。和幻觉一起玩......
  • 对于 Windows + docker + WSL2,this SO answer worked for me.

标签: docker jenkins


【解决方案1】:

正如您在Jenkins CI Dockerfile source code 中看到的那样
/var/jenkins_home 被声明为VOLUME
这意味着可以挂载到主机上

您的命令会为其挂载一个 docker 卷,但您也可以在主机上挂载一个路径。
例如:

docker run -p 8080:8080 -p 50000:50000 -v ~/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

在 Windows 主机上,您可能必须先创建目录。

您可以将~/jenkins_home 更改为适合您的主机环境的任何套件,但这是一个您可以轻松导航和检查的文件夹。

您仍然可以使用您在主机上映射的 porta 上可用的 Web 界面。

【讨论】:

  • 如果我希望本地主机的路径是“C:/Jenkins”,那么新命令是否会是 docker run -p 8080:8080 -p 50000:50000 -v /C:/Jenkins :/var/jenkins_home jenkins/jenkins:lts
  • 说实话,我已经有 10 年没有使用 Windows 了,所以我无法确认。可能没有第一个“/”。如果语法错误,你肯定会得到一个错误。
  • 我必须首先在我的主机中创建一个名为 Jenkins 的目录。然后我使用命令“docker run –name jenkinsci -p 8080:8080 -p 50000:50000 -v ~/Jenkins:/var/jenkins_home/jenkins/jenkins:lts”。似乎它已正确绑定,因为我的主机的 Jenkins 目录现在填充了 jenkins 内容。
  • 我会将此添加到 Windows 用户的解决方案中。只是出于好奇,您是否尝试过 Jenkins 目录的其他位置,但没有成功?例如,在 Mac 上,只有某些路径默认 docker 可以创建用于挂载的目录。不同的路径需要我明确声明
  • 关于 Windows - 斜线是相反的!但是, ~ 仍然有效,因此应该使用 -v ~\jenkins_home:/var/jenkins_home 将容器文件夹挂载到主机上的文件夹。
猜你喜欢
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多