jenkinsci/blueocean docker

 各版本对比,重点,重点,装了blueocean发现不会用alpine系统,此文章仅记录下心酸历程

重点讲下前三个

第一个是官方的镜像,但是版本很旧,不推荐
第二个镜像虽然不是官方的,但是 jenkins 的版本会跟随 jenkins官方的版本,也就是说会保持拉下来的镜像的 jenkins 版本是最新的,推荐,我也用这个
第三个镜像是中文 jenkins 镜像, 但是镜像的系统不是我们所熟悉的 centos、ubuntu、Debian 等,而是 Alpine,安装依赖库的方式也不常见,不推荐
————————————————
版权声明:本文为CSDN博主「小菠萝测试笔记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33801641/article/details/109611063

docker pull jenkinsci/blueocean

docker run 

  -u root 

  --rm 

  -d 

  -p 8081:8080 

  -p 50000:50000 

 --name jenkins

  --privileged=true 

-v /var/jenkins/jenkins_home:/var/jenkins_home 

-v /var/jenkins/blueocean:/home

  -v /var/run/docker.sock:/var/run/docker.sock 

  jenkinsci/blueocean

sudo docker run -itd -u root -p 8081:8080 -p 50000:50000 --name jenkinsci-blueocean  --privileged=true  -v /var/jenkins/jenkins_home:/var/jenkins_home -v /var/jenkins/blueocean:/home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

  • 完整的容器功能(-privileged)
$ docker run -t -i --rm ubuntu bash
root@bc338942ef20:/# mount -t tmpfs none /mnt
mount: permission denied

这是行不通的,因为默认情况下,大多数具有潜在危险的内核功能都被丢弃; 包括cap_sys_admin(这是安装文件系统所必需的)。 但是, - 特权标志将允许它运行:

$ docker run -t -i --privileged ubuntu bash
root@50e3f57e16e6:/# mount -t tmpfs none /mnt
root@50e3f57e16e6:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
none            1.9G     0  1.9G   0% /mnt

--privileged标志为容器提供了所有功能,并且还提升了devicecgroup控制器执行的所有限制。换句话说,容器可以做主机可以做的几乎所有事情。这个标志存在允许特殊的用例,比如在Docker中运行Docker。

  • --rm (可选) jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。

  • -d(可选)jenkinsci/blueocean 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。

  • -p 8080:8080 映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。

  • -p 50000:50000(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。

​ 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。

  • -v /var/jenkins:/var/jenkins_home:/var/jenkins_home(可选,但强烈建议)映射在容器中的/var/jenkins_home 目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。

  • -v /var/run/docker.sock:/var/run/docker.sock(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker

例如, agent { docker { ... } } 此选项是必需的。 在Pipeline Syntax 页面上阅读更多关于这个的信息 。


问题1:启动容器就退出【日志查询】

权限问题,增加-u root参数解决

sudo docker inspect --format '{{.LogPath}}' d740e7573f9e

 cat /var/lib/docker/containers/d740e7573f9e75d0fa61ae6492b979620df981f4fdf6a2eb8025d53c95ee526e/d740e7573f9e75d0fa61ae6492b979620df981f4fdf6a2eb8025d53c95ee526e-json.log

{"log":"touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied\r\n","stream":"stdout","time":"2022-02-17T07:58:06.096095137Z"}
{"log":"Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?\r\n","stream":"stdout","time":"2022-02-17T07:58:06.096233856Z"}
{"log":"touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied\r\n","stream":"stdout","time":"2022-02-17T07:59:37.283226051Z"}
{"log":"Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?\r\n","stream":"stdout","time":"2022-02-17T07:59:37.283586437Z"}
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值