在Docker容器中启动Jenkins

时间:2016-01-10 13:41:29

标签: jenkins docker centos7

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

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

接下来,使用此映像运行容器并将数据目录从容器映射到主机;例如,在下面的示例中,容器中的/ var / jenkins_home从主机上的当前路径映射到jenkins /目录。 Jenkins 8080端口也作为49001暴露给主机。

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

但是当我尝试运行docker容器时,我收到以下错误:

{{1}}

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

2 个答案:

答案 0 :(得分:16)

关于卷的官方Jenkins Docker图像documentation说:

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

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

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

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

答案 1 :(得分:0)

最新的Jenkins文档说使用Docker'volumes'。 Docker在这方面有点棘手,两者之间的区别是使用-v选项(用于绑定安装)的完整路径名和用于卷的名称。

docker run -d -p 49001:8080 -v jenkins-data:/var/jenkins_home -t jenkins

此命令将创建一个名为“ jenkins-data”的docker卷,您将不再看到错误。

链接以管理卷: https://docs.docker.com/storage/volumes/