docker安装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回车 你会发现终于看到老头子了 当然了你还需要安装对应的插件。

原文地址:https://www.cnblogs.com/youcong/p/10182091.html

时间: 2024-10-31 05:46:46

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

Mac 环境docker 安装jenkins

网上很多的教程是讲的是Linux 上的Docker安装Jenkins,但是我用的是Mac,所以参考之前的前辈写的文章,记录一下自己的安装过程. 1.新建本地挂载文件地址,我用到的mac mkdir /Users/vincentwen/docker/jenkins 2.运行Jenkins,挂载本地宿主机文件地址 sudo docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /Users/vi

Linux Docker安装Jenkins

安装环境 操作系统 centos7.3 安装Docker,安装及配置见 <Docker之Docker介绍及安装配置> 安装Jenkins 下载Jenkins 命令:sudo docker pull jenkins 启动Jenkins前准备 创建jenkins文件夹 创建jenkins文件夹,用于和容器内文件夹做磁盘挂载 命令:mkdir /home/hzq/jenkins 注意:在安装jenkins时候,挂在文件夹/home/hzq/jenkins/的归属用户id必须是1000,否则会抛出无操

使用Docker安装Jenkins

安装Docker 在CentOS 7上安装docker-ce,首先检查系统中是否已经安装过docker及相关依赖: $ sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 通过仓库进行安装,安装所

jenkins 实验 (二) docker安装jenkins

先安装docker yum install dock* -y systemctl start docker.service 启动docker失败鸟,容我修个错误 看下服务啥错误 systemctl status docker.service -l 坑 Error starting daemon: SELinux is not supported with the ov 重新编辑docker配置文件: vi /etc/sysconfig/docker 在docker里禁用selinux,--sel

Docker 安装 Jenkins

一. 什么是Jenkins Jenkins是当前非常流行的一款持续集成工具,可以帮助大家把更新后的代码自动部署到服务器上运行. 二. 为什么用docker版的Jenkins Jenkins主要有三种安装方式 下载官方war包,放到tomcat中直接运行. yum安装,感兴趣的朋友可以参考之前我写的一篇文章在linux服务器上安装Jenkins. 使用官方docker镜像. 建议用docker,简单有效. 三. 准备工作 这里我使用docker-compose来安装jenkins,1.先编写好do

docker 安装jenkins

1.  下载镜像 docker search jenkins   #查看jenkins镜像,开始用的官方的jenkins镜像版本低了 2.60的版本,pipe等好多插件不兼容 docker pull jenkins/jenkins 2. 启动容器 docker run --name myjenkins -p 8080:8080 -d jenkins/jenkins 3. 查看容器的logs,去查看登录用的密码 docker container logs myjenkins 4.  登录 ip:8

使用Docker安装Jenkins服务

1.从Docker Hub上下载Jenkins镜像:(https://hub.docker.com/search?q=jenkins&type=image) docker pull jenkins/jenkins:lts 2.在本地创建对应的映射目录 mkdir -p /XXXX/XXX/XX 3.启动Jenkins:(指定将宿主机的~/XXX目录挂载到容器的/var/jenkins_home目录)这样可以数据的持久化,即使重启容器,数据也不会丢失 docker run -d --name co

Docker 安装 Jenkins 镜像

通过镜像安装的jenkins  进入容器后并不能执行 dotnet --info命令 如果如需在容器内使用dotnet命令   需要自己制作jenkins Dockerfile文件 docker build -t jenkinsnetcore .   创建镜像  .当前目录 docker-compose.yml文件 image 名称 init.sh文件 创建完成镜像以后 执行 sh init.sh docker-compose up -d 进入jenkins容器就可以使用dotnet命令了 使用

docker安装jenkins

mkdir /var/jenkins_home chown -R 1000 /var/jenkins_home docker run -d --name hyjenkins -p 49001:8080 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts 原文地址:https://www.cnblogs.com/Hakim/p/10270995.html