前置说明
查看CentOS版本
cat /etc/redhat-release
结果 CentOS Linux release 7.7.1908 (Core)
docker操作
docker images 查看所有镜像 (已拉取到本地的)
docker ps 列出所有运行中的容器
docker ps -a 列出容器 包括 未运行/运行中的
docker search jenkins/jenkins 列出可用镜像
docker pull jenkins/jenkins 拉取指定镜像
Docker 启动/重启/杀死/停止/查看状态/开机启动 容器
docker start containerName或者containerID
docker restart containername或者containerID
docker stop containerName或者containerID
docker kill containerName或者containerID
docker status containername或者containerID
docker enable containername或者containerID
删除镜像 需要:
1.停止容器(运行中的)
docker stop 容器名/容器ID 只取前3-4位即可 完整也行
2.删除容器
docker rm 容器名/容器ID 通过容器Name删除容器,name 完整/前3个字符
3.删除镜像
docker rmi 镜像名/镜像ID 根据镜像ID 删除镜像,id前3个字符即可
Docer方式在 linux(centos)上安装jenkins,避免各种环境配置的冲突麻烦
https://blog.youkuaiyun.com/qinaye/article/details/85053088
docker pull 镜像报错解决
https://blog.youkuaiyun.com/qq_60506984/article/details/129770336
docker run 命令详解
https://blog.51cto.com/u_15009374/3144897
安装流程
step1 centos 安装/启动docker
安装 yum install docker
启动 service docker start
验证是否安装成功 docker version 显示 Clinet/Server
step2 拉取Jenkins镜像
2.1 外国仓库容易失败 换国内仓库 创建daemon.json
vi /etc/docker/daemon.json
按 i 进入编辑 加入仓库地址
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"] //只加这一行
}
按 ESC ,并按 :冒号输入wq(保存退出:wq)
2.2 重启守护线程 systemctl daemon-reload
2.3 重启docker systemctl restart docker
2.4 查看所有镜像 docker search jenkins/jenkins
2.4 pull指定镜像 docker pull jenkins/jenkins :lts或者:latest 默认
2.5 查看镜像名称+tag确认 docker images
step3 防火墙添加 端口 白名单
firewall-cmd --permanent --list-all
//50000/9111未开启的话 添加端口白名单
firewall-cmd --permanent --add-port=50000/tcp
firewall-cmd --permanent --add-port=9111/tcp
//添加或者移除规则后重新加载firewall后配置才会生效
firewall-cmd --reload
step4 载入Jenkins镜像 启动容器
注意这是一行命令,不能分行 具体参数参照https://blog.51cto.com/u_15009374/3144897
docker run -d -p 9111:8080 -p 50000:50000 --name jenkins --privileged=true -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -u root docker.io/jenkins/jenkins:latest
解释:
将容器的8080端口 映射到linux端口9111
设置容器名字
--name jenkins
挂载宿主机器目录, 于后续文件移动拷贝 格式为: 宿主机文件夹(容器启动前会自动创建):容器文件夹
-v /var/jenkins_home:/var/jenkins_home
挂载docker宿主机的docker文件和docker.sock文件,让容器可以执行宿主机的指令
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker
使得 docker 容器有 root 权限执行宿主机命令,确保从容器执行命令的时候不会产生权限不足错误
--privileged=true
step5 访问jenkins
ip:9111
step6 进入jenkins后 可更换源(更改插件升级URL 获取更快响应)
管理Jenkins/ManagePlugins
替换最下方【升级站点】中的URL:
替换前:
http://updates.jenkins-ci.org/update-center.json
替换后:
http://mirror.esuni.jp/jenkins/updates/update-center.json
step7 忘记密码 修改密码(容器运行jenkins时 必须挂载目录)
cd /var/jenkins_home
ls 列出文件夹 admin_xxxx
cd admin_xxxx
ls 列出来 config.xml 修改这个即可
vi config.xml
<passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
重启jenkins后 账号密码登录: admin/123456
step8 容器安装的jenkins版本低 更新方法
1 确认下载链接
jenkins 系统管理 页面下面 会给出新版本war链接 例如下面
https://updates.jenkins.io/download/war/2.406/jenkins.war
2 下载jenkins.war
容器内 wget yum等命令可能不正常 在容器外下载好 再进入容器拷贝
cd /var/jenkins_home/ //jenkins容器已挂载的目录
mkdir zdata 创建zdata目录
wget https://updates.jenkins.io/download/war/2.406/jenkins.war --no-check-certificate
3 进入容器 更新jenkins 其实就是更新jenkins.war 再重启容器
3.1 docker ps //查看运行中的jenkins容器ID xxx
docker exec -it -u root xxx /bin/bash //进入容器
3.2 which jenkins.war //找到目录 /usr/share/jenkins
cd /usr/share/jenkins //进入目录
ls //确认jenkins.war存在
3.3 cd /var/jenkins_home/zdata/
cp -f jenkins.war /usr/share/jenkins/ //覆盖文件 不提示
4 按Ctrl+P+Q //正常退出退出容器,不关闭容器
5 docker restart jenkins //重启容器