在Docker容器中启动Jenkins

在Docker容器中启动Jenkins,jenkins,docker,centos7,Jenkins,Docker,Centos7,我想在Centos7的Docker容器中运行Jenkins。 我看到了詹金斯的官方文件: 首先,从Docker存储库中提取jenkins官方图像 docker pull jenkins 接下来,使用该图像运行一个容器,并将数据目录从容器映射到主机;e、 g在下面的示例中,容器中的/var/jenkins_home从主机上的当前路径映射到jenkins/directory。Jenkins 8080端口也暴露于主机as 49001 docker run -d -p 49001:8080 -v $P

我想在Centos7的Docker容器中运行Jenkins。 我看到了詹金斯的官方文件: 首先,从Docker存储库中提取jenkins官方图像

docker pull jenkins
接下来,使用该图像运行一个容器,并将数据目录从容器映射到主机;e、 g在下面的示例中,容器中的/var/jenkins_home从主机上的当前路径映射到jenkins/directory。Jenkins 8080端口也暴露于主机as 49001

docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins
但是,当我尝试运行docker容器时,会出现以下错误:

/usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied

有人能告诉我如何解决这个问题吗?

Jenkins Docker的官方图片显示了关于卷:

这将在主机上的/your/home中存储jenkins数据。确保容器中的jenkins用户(jenkins用户-uid 1000)可以访问/your/home,或者在docker run中使用-u some_other_用户参数

也可以找到此信息。 因此,您需要做的就是确保UID
1000
拥有目录
$PWD/jenkins

mkdir jenkins
chown 1000 jenkins
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins

最新的詹金斯文档说要使用Docker“卷”。 Docker在这方面有点棘手,两者之间的区别是一个完整路径名,绑定挂载使用-v选项,而卷只使用一个名称

docker run -d -p 49001:8080 -v jenkins-data:/var/jenkins_home -t jenkins
此命令将创建名为“jenkins data”的docker卷,您将不再看到错误

管理卷的链接:

它工作正常。您是否具有容器运行位置的写入权限?我认为这是一个问题。我想我必须确保容器可以在我的主机上写入内容是的,如果要使其持久化,您肯定允许容器在主机上写入内容。我仍然会遇到一个错误:无法创建主目录“/media/mydrive/JENKINS_home”。这很可能是权限问题,即。答:在docker服务器上将dir/your/home归UID 1000所有(以匹配jenkins容器中的jenkins用户(UID=1000)。添加jenkins用户(UID=1000)如果需要,在docker服务器上..如何确保UID 1000拥有该文件夹?@NicolasS.Xu这就是chown 1000 jenkins所做的,它将目录的所有者更改为UID 1000的用户
docker run -d -p 49001:8080 -v jenkins-data:/var/jenkins_home -t jenkins