加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

docker安装jenkins及其相关问题解决

发布时间:2020-12-16 03:19:50 所属栏目:安全 来源:网络整理
导读:? 1.拉取镜像并启动容器 docker run -d -p 8080:8080 -p 50000:50000 -v $(pwd)/data:/var/jenkins_home --name jenkins jenkins ? 2.通过docker ps命令你会发现jenkins容器没有运行起来 ? 3.通过docker ps -a查看所有容器并找到对应的Jenkins容器编号,并通

?

1.拉取镜像并启动容器

docker run -d -p 8080:8080 -p 50000:50000 -v $(pwd)/data:/var/jenkins_home --name jenkins jenkins

?

2.通过docker ps命令你会发现jenkins容器没有运行起来

?

3.通过docker ps -a查看所有容器并找到对应的Jenkins容器编号,并通过命令查看对应的日志

docker logs Jenkins

错误信息如下:

touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

?

分析:

我们检查一下之前启动方式的"/var/jenkins_home"目录权限,查看Jenkins容器的当前用户: 当前用户是"jenkins"而且"/var/jenkins_home"目录是属于jenkins用户拥有的。

?

docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "whoami && id

?

控制台输出:

?

?

docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "ls -la /var/jenkins_home"

?

控制台输出:

?

?

而当映射本地数据卷时,/var/jenkins_home目录的拥有者变成了root用户

docker run -ti --rm -v $(pwd)/data:/var/jenkins_home --entrypoint="/bin/bash" jenkins -c "ls -la /var/jenkins_home"

?

控制台输出:

?

这就解释了为什么当"jenkins"用户的进程访问"/var/jenkins_home"目录时,会出现?Permission denied?的问题

我们再检查一下宿主机上的数据卷目录,当前路径下"data"目录的拥有者是"root",这是因为这个目录是Docker进程缺省创建出来的。

?

ls -la data

?

控制台输出:

?

发现问题之后,相应的解决方法也很简单:把当前目录的拥有者赋值给uid 1000,再启动"jenkins"容器就一切正常了。

递归授权并再次启动jenkins

sudo chown -R 1000 data
docker start Jenkins

?

最后输入浏览器地址:http://IP:8080回车 你会发现终于看到老头子了 当然了你还需要安装对应的插件。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读