大爷闪亮登场 發表於 2025-12-6 10:35:10

docker及docker-compose安装,docker安装Jenkins全过程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">linux安装docker</a></li><li><a href="#_label1">安装docker-compose</a></li><li><a href="#_label2">安装Jenkins</a></li><li><a href="#_label3">构建项目</a></li><li><a href="#_label4">总结</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>linux安装docker</h2>
<p>1 卸载之前的</p>
<div class="jb51code"><pre class="brush:bash;">sudo yum remove docker-ce docker-ce-cli containerd.io</pre></div>
<p>&nbsp;删除资源</p>
<div class="jb51code"><pre class="brush:bash;">sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd</pre></div>
<p>2 安装工具包</p>
<div class="jb51code"><pre class="brush:bash;">sudo yum install -y yum-utils</pre></div>
<p>若是遇到网络原因下载失败的:</p>
<p>2.1&nbsp;备份原有repo文件</p>
<div class="jb51code"><pre class="brush:bash;">sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup</pre></div>
<p>2.2&nbsp;使用阿里云镜像</p>
<div class="jb51code"><pre class="brush:bash;">sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo</pre></div>
<p>3 设置镜像仓库</p>
<div class="jb51code"><pre class="brush:bash;">sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</pre></div>
<p>4 安装docker,选择y继续执行</p>
<div class="jb51code"><pre class="brush:bash;">sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</pre></div>
<p>5 设置镜像加速以及开机自启动</p>
<div class="jb51code"><pre class="brush:bash;">sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json &lt;&lt;-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker</pre></div>
<p>/etc/docker/daemon.json内容设置()</p>
<div class="jb51code"><pre class="brush:bash;">{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
}</pre></div>
<p>6 输入命令,查看是否安装成功 docker verison,出现下图安装成功</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252833.png" /></p>
<p class="maodian"><a name="_label1"></a></p><h2>安装docker-compose</h2>
<p><strong>方式1:通过pip安装</strong></p>
<p>安装pip</p>
<div class="jb51code"><pre class="brush:bash;">-- 安装pip
yum -y install epel-release
yum -y install python3-pip
pip3 install --upgrade pip</pre></div>
<p>安装docker-compose</p>
<div class="jb51code"><pre class="brush:bash;">pip install docker-compose

pip3 install docker-compose</pre></div>
<p>检查是否安装成功</p>
<div class="jb51code"><pre class="brush:bash;"> docker-compose -v</pre></div>
<p>&nbsp;卸载docker-compose</p>
<div class="jb51code"><pre class="brush:bash;">pip uninstall docker-compose

pip3 uninstall docker-compose</pre></div>
<p>卸载前置包</p>
<div class="jb51code"><pre class="brush:bash;">pip3 uninstall pip
yum -y remove python3-pip
yum -y remove epel-release</pre></div>
<p>测试是否卸载成功</p>
<div class="jb51code"><pre class="brush:bash;">docker-compose -v
// -bash: /usr/local/bin/docker-compose: 没有那个文件或目录</pre></div>
<p><strong>方式2:命令安装(github不稳定,会连接失败)</strong></p>
<div class="jb51code"><pre class="brush:bash;">curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose</pre></div>
<p>检查是否安装成功</p>
<div class="jb51code"><pre class="brush:bash;">docker-compose version</pre></div>
<p>卸载docker-compose(可以使用命令先查找docker-compose路径)</p>
<div class="jb51code"><pre class="brush:bash;">which docker-compose
sudo rm /usr/local/bin/docker-compose</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>安装Jenkins</h2>
<p>创建Jenkins映射目录</p>
<div class="jb51code"><pre class="brush:bash;">mkdir /var/jenkins_home</pre></div>
<p>为目录设置权限</p>
<div class="jb51code"><pre class="brush:bash;">chmod 777 /var/jenkins_home</pre></div>
<p>拉取启动Jenkins容器,并将docker映射到Jenkins容器中</p>
<div class="jb51code"><pre class="brush:bash;">docker run --privileged -d --name jenkins -p 18080:8080 -p 8888:8888 -p 50000:50000 \
-v /var/jenkins_home:/var/jenkins_home\
-v /var/run/docker.sock:/var/run/docker.sock\
-v $(which docker):/bin/docker jenkins/jenkins:latest-jdk17</pre></div>
<ul><li>-d : 后台运行</li><li>-p 18080:8080 : 将容器的8080端口映射到宿主的18080端口</li><li>-v /var/jenkins_home:/var/jenkins_home : 将容器中/var/jenkins_home的目录挂载到宿主的/mnt/jenkins_home</li><li>-v $(which docker):/bin/docker : 将宿主的docker目录映射到容器内,以便在容器中能使用docker对应的命令完成自动化部署</li></ul>
<p>查看容器是否启动成功</p>
<div class="jb51code"><pre class="brush:bash;">docker ps</pre></div>
<p>出现下图,则启动成功</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252851.png" /></p>
<p>后续操作Jenkins时,可能会报权限不足的错误,可先进行权限设置来解决</p>
<div class="jb51code"><pre class="brush:bash;">chmod 777 /var/run/docker.sock</pre></div>
<p>初始化Jenkins</p>
<div class="jb51code"><pre class="brush:bash;">cd /var/jenkins_home

vi hudson.model.UpdateCenter.xml

修改地址为下面的地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</pre></div>
<p>&nbsp;文件内容为:</p>
<div class="jb51code"><pre class="brush:xml;">&lt;?xml version='1.1' encoding='UTF-8'?&gt;
&lt;sites&gt;
&lt;site&gt;
    &lt;id&gt;default&lt;/id&gt;
    &lt;url&gt;https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json&lt;/url&gt;
&lt;/site&gt;
&lt;/sites&gt;</pre></div>
<p>重启Jenkins</p>
<div class="jb51code"><pre class="brush:bash;">docker restart jenkins</pre></div>
<p>浏览器输入:ip:端口(18080),进入初始化页面</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252889.png" /></p>
<p>可以通过docker logs jenkins 来查看密码 ,或者根据上图中的提示来查看密码(该密码保存好)</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252839.png" /></p>
<p>&nbsp;输入密码之后,进入下面页面</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252883.png" /></p>
<p>选择安装推荐插件,等待安装完成</p>
<p>在安装过程中,在本地下载jdk包和maven包,上传至服务器</p>
<div class="jb51code"><pre class="brush:bash;">cd /var/jenkins_home
mkdir tools</pre></div>
<p>将下载的jdk包和maven包进行解压</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252896.png" /></p>
<p>进入解压后的maven中,创建存放jar的存放目录</p>
<div class="jb51code"><pre class="brush:bash;">mkdir repository</pre></div>
<p>进入conf中,修改setting.xml文件夹,</p>
<p>添加指定jar的目录</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252848.png" /></p>
<div class="jb51code"><pre class="brush:xml;">&lt;localRepository&gt;/var/jenkins_home/tools/apache-maven-3.9.9/repository&lt;/localRepository&gt;</pre></div>
<p>设置阿里云镜像</p>
<div class="jb51code"><pre class="brush:xml;">&lt;mirror&gt;
                &lt;!-- 镜像的唯一标识符,可以自定义。 --&gt;
                &lt;id&gt;nexus-aliyun&lt;/id&gt;
                &lt;!-- 指定该镜像所对应的原始仓库。你可以使用通配符来匹配多个原始仓库。例如,使用“*”表示匹配所有原始仓库。。--&gt;
                &lt;mirrorOf&gt;*&lt;/mirrorOf&gt;
                &lt;!-- 镜像的名称,可以自定义。 --&gt;
                &lt;name&gt;Nexus aliyun&lt;/name&gt;
                &lt;!-- 镜像的URL地址。你需要提供一个有效的镜像地址。 --&gt;
                &lt;url&gt;http://maven.aliyun.com/nexus/content/groups/public&lt;/url&gt;
        &lt;/mirror&gt;</pre></div>
<p>为tools目录及其里边所有的目录设置权限</p>
<div class="jb51code"><pre class="brush:bash;">chmod -R 777 /var/jenkins_home/tools/</pre></div>
<p>等待Jenkins插件安装完成。</p>
<p>完成后点击使用admin账户继续</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252811.png" /></p>
<p>点击保存并完成</p>
<p>点击插件管理</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252812.png" /></p>
<p style="text-align:center">&nbsp;<img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252869.png" /></p>
<p>点击Plugins安装插件(maven 插件)</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252846.png" /></p>
<p style="text-align:center">&nbsp;<img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252890.png" /></p>
<p>完成后,返回首页</p>
<p>继续点击插件管理,选择tools</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252859.png" /></p>
<p>选择下方jdk安装</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252863.png" /></p>
<p>选择下方maven配置,完成后保存配置</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252949.png" /></p>
<p>&nbsp;然后重启Jenkins</p>
<div class="jb51code"><pre class="brush:bash;">docker restart jenkins</pre></div>
<p class="maodian"><a name="_label3"></a></p><h2>构建项目</h2>
<p>1.给要部署的项目中添加打包配置,名称为nacos.jar,名称可根据自己的改</p>
<div class="jb51code"><pre class="brush:xml;">&lt;build&gt;
    &lt;finalName&gt;nacos&lt;/finalName&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
      &lt;/plugin&gt;
      &lt;!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin--&gt;
    &lt;/plugins&gt;
&lt;/build&gt;</pre></div>
<p>同时,在自己的项目根目录下新建一个Dockerfile文件</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252915.png" /></p>
<p>&nbsp;文件内容为(这里是用的jdk 1.8):</p>
<div class="jb51code"><pre class="brush:bash;">FROM openjdk:8
ADD ./target/nacos.jar //
ENTRYPOINT ["java", "-jar", "/nacos.jar"]</pre></div>
<p>大概的意思是就是基于Dockerfile把项目打包成docker镜像,并随着容器启动自动启动项目</p>
<p>2.将代码推送到远程,这里使用的是gitee</p>
<p>3.进入Jenkins页面,新建任务,输入名称,选择第一个选项</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252990.png" /></p>
<p>&nbsp;源码管理中选择git,同时输入自己的git地址,添加选择Jenkins</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252971.png" /></p>
<p>输入自己的git账号个密码</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252981.png" /></p>
<p>&nbsp;选择自己的git账号</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252957.png" /></p>
<p>可以选择定时构建等,这里未选择</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252924.png" /></p>
<p>点击下方构建步骤 ,选择maven目标</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252911.png" /></p>
<p>选择maven后,进行配置</p>
<div class="jb51code"><pre class="brush:bash;">clean install -Dmaven.test.skip=true</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252989.png" /></p>
<p>保存,点击立即构建。(查看控制台输出)</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252972.png" /></p>
<p>构建成功后,在jenkin_home文件夹下会出现workspace文件夹</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252912.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252988.png" /></p>
<p>找到自己要部署的项目的jar,在target下,记录此路径</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252915.png" /></p>
<p>4.启动项目容器</p>
<p>启动项目的原理是通过Dockerfile构建项目镜像,并自动启动容器。我们项目和jenkins在同一台服务器,所以我们用shell脚本运行项目,原理既是通过dockerfile 打包镜像,然后docker运行即可。</p>
<p>选择自己的构建任务,点击配置</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252966.png" /></p>
<p>点击新增构建步骤,选择执行shell,输入下面的命令。</p>
<p>该命令中,cd后则是拉取代码后target所在的目录</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252925.png" /></p>
<div class="jb51code"><pre class="brush:bash;">cd /var/jenkins_home/workspace/kk-nacos/kk-support/kk-nacos/
docker stop kk-nacos || true
docker rm kk-nacos || true
docker rmi kk-nacos:1.0 || true
docker build -t kk-nacos:1.0 .
docker run -id -p 18848:18848 --name kk-nacos kk-nacos:1.0</pre></div>
<p>点击保存,点击构建此次任务,查看控制台</p>
<p>出现下面错误,可能是权限不足,执行以下命令,重新构建此次任务</p>
<div class="jb51code"><pre class="brush:bash;">chmod 777 /var/run/docker.sock</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252995.png" /></p>
<p>出现下图,则构建成功</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252994.png" /></p>
<p>然后,执行docker ps,查看容器是否启动成功</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120610252968.png" /></p>
<p>本次是nacos,可在浏览器出入nacos的ip,进入首页看是否执行成功.</p>
<p><strong>整个流程:</strong></p>
<ul><li>1.程序员用IDEA将代码推送到GIT远程仓库</li><li>2.Jenkins通过Git客户端从Git仓库中拉取最新的代码</li><li>3.Jenkins执行maven命令打包项目:clean install</li><li>4.Jenkins执行脚本,cd到代码目录,执行docker build,根据Dockerfile 构建镜像</li><li>5.执行脚本 docker run 启动容器</li></ul>
<p class="maodian"><a name="_label4"></a></p><h2>总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
頁: [1]
查看完整版本: docker及docker-compose安装,docker安装Jenkins全过程