使用 Docker 部署 Jenkins 并设置初始管理员密码
每一次开始,我都特别的认真与胆怯,是因为我期待结局,也能够不会那么粗糙,不会让我失望,所以,就多了些思考,多了些拘束,所以,我也就格外重视第一次!
在这篇博客中,我们将介绍如何使用 Docker 部署 Jenkins,并在 /usr/local/src/
目录下创建相关卷。
安装Docker
1、选择要安装的平台
Docker要求CentOS系统的内核版本高于3.10
sh
uname -r #通过 uname -r 命令查看你当前的内核版本
安装文档地址
2、选择要安装的操作系统
3、首先卸载已安装的Docker
使用Root权限登录 Centos。确保yum包更新到最新。
sh
sudo yum update
如果你的操作系统没有安装过Docker , 就不需要执行卸载命令。
sh
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
4、建立仓库
安装Docker所需要的一些工具包
sh
sudo yum install -y yum-utils
建立Docker仓库 (映射仓库地址)
sh
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、安装Docker引擎
sh
sudo yum install docker-ce docker-ce-cli containerd.io
6、启动Docker
sh
sudo systemctl start docker
7.设置docker镜像仓库
有时候,我们pull
镜像的时候非常慢,所以需要设置一下国内的镜像仓库作为下载源
sh
第一步:新建或编辑daemon.json
vi /etc/docker/daemon.json
第二步:daemon.json中编辑如下
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
第三步:重启docker
systemctl restart docker.service
第四步:执行docker info查看是否修改成功
docker info
以下列举出国内的几个下载地址:
sh
1.网易
http://hub-mirror.c.163.com
2.Docker中国区官方镜像
https://registry.docker-cn.com
3.中国科技大学
https://docker.mirrors.ustc.edu.cn
4.阿里云容器服务
https://cr.console.aliyun.com/
首页点击"创建我的容器镜像" 得到一个专属的镜像加速地址,类似于"https://1234abcd.mirror.aliyuncs.com"
8.安装docker-compose
Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:github.com/docker/comp...。
运行以下命令以下载 Docker Compose 的当前稳定版本:
sh
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
要安装其他版本的 Compose,请替换 v2.2.2。
Docker Compose 存放在 GitHub,不太稳定。 你可以也通过执行下面的命令,高速安装 Docker Compose。
sh
curl -L [https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-](https://link.zhihu.com/?target=https%3A//get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-)`uname -s`-`uname -m` > /usr/local/bin/docker-compose
将可执行权限应用于二进制文件:
text
$ sudo chmod +x /usr/local/bin/docker-compose
创建软链:
text
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
text
$ docker-compose version
cker-compose version 1.24.1, build 4667896b
9.docker常用命令
基本命令
-
启动 Docker 服务:
shsystemctl start docker
-
检查 Docker 版本:
shdocker --version
镜像操作
-
从 Docker Hub 拉取镜像:
shdocker pull <image_name>
例如:
shdocker pull nginx
-
列出本地镜像:
shdocker images
-
删除本地镜像:
shdocker rmi <image_name>
-
构建镜像:
shdocker build -t <image_name> .
容器操作
-
运行容器:
shdocker run -it --name <container_name> <image_name>
例如:
shdocker run -it --name my_nginx nginx
-
列出运行中的容器:
shdocker ps
-
列出所有容器(包括停止的容器):
shdocker ps -a
-
停止容器:
shdocker stop <container_name>
-
启动已停止的容器:
shdocker start <container_name>
-
删除容器:
shdocker rm <container_name>
-
进入运行中的容器:
shdocker exec -it <container_name> /bin/bash
数据卷操作
-
创建数据卷:
shdocker volume create <volume_name>
-
列出数据卷:
shdocker volume ls
-
删除数据卷:
shdocker volume rm <volume_name>
网络操作
-
创建网络:
shdocker network create <network_name>
-
列出网络:
shdocker network ls
-
删除网络:
shdocker network rm <network_name>
其他操作
-
查看容器日志:
shdocker logs <container_name>
-
检查 Docker 系统资源使用情况:
shdocker system df
安装Jenkins
1.拉取 Jenkins 镜像
从 Docker Hub 拉取最新的 Jenkins 镜像。
bash
docker pull jenkins/jenkins:lts
2.创建 Docker 卷
在 /usr/local/src/
目录下创建一个用于存储 Jenkins 数据的目录。
bash
mkdir -p /usr/local/src/jenkins/data
3.运行 Jenkins 容器
使用 Docker 启动 Jenkins 容器,并挂载前面创建的目录。
bash
docker run -d --name jenkins \
-v /usr/local/src/jenkins/data:/var/jenkins_home \
-p 8080:8080 \
-p 50000:50000 \
jenkins/jenkins:lts
在上述命令中:
-d
:表示容器将在后台运行。--name jenkins
:指定容器的名称为jenkins
。-v /usr/local/src/jenkins/data:/var/jenkins_home
:将主机的/usr/local/src/jenkins/data
目录挂载到容器内的 Jenkins 数据目录/var/jenkins_home
。-p 8080:8080
:将容器的 8080 端口映射到主机的 8080 端口。-p 50000:50000
:将容器的 50000 端口映射到主机的 50000 端口,用于 Jenkins 代理通信。
如果启动失败,查看容器日志,
sh
docker logs 容器ID
如果是如下报错
sh
INSTALL WARNING: User: missing rw permissions on JENKINS_HOME: /var/jenkins_home
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?
那就给容器挂载目录授权
sh
sudo chown -R 1000:1000 /usr/local/src/jenkins
sudo chown -R 1000:1000 /usr/local/src/jenkins/*
3.验证部署
打开浏览器并访问 http://<你的主机IP>:8080
,在首次启动时,Jenkins 将生成一个初始管理员密码。可以通过以下命令查看初始密码:
sh
docker logs 容器ID
或者直接查看文件中的密码
sh
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
初始化配置完成后,可以使用 Jenkins Web 界面创建新的用户、配置插件和管理 Jenkins 实例。
4.其他常用 Docker 命令
-
查看容器日志:
bashdocker logs -f jenkins
-
进入容器内部:
bashdocker exec -it jenkins /bin/bash