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

 更新时间:2025年12月06日 10:35:10   作者:Kevin_wcl  
本文详细介绍了在Linux系统上安装Docker、Docker Compose和Jenkins,并通过Jenkins自动化部署项目的步骤,文中涵盖了从卸载旧版本Docker到设置镜像加速、安装Jenkins、配置Jenkins插件以及通过Dockerfile构建镜像和启动容器的全过程

linux安装docker

1 卸载之前的

sudo yum remove docker-ce docker-ce-cli containerd.io

 删除资源

sudo rm -rf /var/lib/docker 
sudo rm -rf /var/lib/containerd

2 安装工具包

sudo yum install -y yum-utils

若是遇到网络原因下载失败的:

2.1 备份原有repo文件

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.2 使用阿里云镜像

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3 设置镜像仓库

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4 安装docker,选择y继续执行

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5 设置镜像加速以及开机自启动

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'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

/etc/docker/daemon.json内容设置()

{
"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"
]
}

6 输入命令,查看是否安装成功 docker verison,出现下图安装成功

安装docker-compose

方式1:通过pip安装

安装pip

-- 安装pip
yum -y install epel-release
yum -y install python3-pip
pip3 install --upgrade pip

安装docker-compose

pip install docker-compose
或
pip3 install docker-compose

检查是否安装成功

 docker-compose -v

 卸载docker-compose

pip uninstall docker-compose
或
pip3 uninstall docker-compose

卸载前置包

pip3 uninstall pip
yum -y remove python3-pip
yum -y remove epel-release

测试是否卸载成功

docker-compose -v
// -bash: /usr/local/bin/docker-compose: 没有那个文件或目录

方式2:命令安装(github不稳定,会连接失败)

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

检查是否安装成功

docker-compose version

卸载docker-compose(可以使用命令先查找docker-compose路径)

which docker-compose
sudo rm /usr/local/bin/docker-compose

安装Jenkins

创建Jenkins映射目录

mkdir /var/jenkins_home

为目录设置权限

chmod 777 /var/jenkins_home

拉取启动Jenkins容器,并将docker映射到Jenkins容器中

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
  • -d : 后台运行
  • -p 18080:8080 : 将容器的8080端口映射到宿主的18080端口
  • -v /var/jenkins_home:/var/jenkins_home : 将容器中/var/jenkins_home的目录挂载到宿主的/mnt/jenkins_home
  • -v $(which docker):/bin/docker : 将宿主的docker目录映射到容器内,以便在容器中能使用docker对应的命令完成自动化部署

查看容器是否启动成功

docker ps

出现下图,则启动成功

后续操作Jenkins时,可能会报权限不足的错误,可先进行权限设置来解决

chmod 777 /var/run/docker.sock

初始化Jenkins

cd /var/jenkins_home

vi hudson.model.UpdateCenter.xml

修改地址为下面的地址

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

 文件内容为:

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

重启Jenkins

docker restart jenkins

浏览器输入:ip:端口(18080),进入初始化页面

可以通过docker logs jenkins 来查看密码 ,或者根据上图中的提示来查看密码(该密码保存好)

 输入密码之后,进入下面页面

选择安装推荐插件,等待安装完成

在安装过程中,在本地下载jdk包和maven包,上传至服务器

cd /var/jenkins_home
mkdir tools

将下载的jdk包和maven包进行解压

进入解压后的maven中,创建存放jar的存放目录

mkdir repository

进入conf中,修改setting.xml文件夹,

添加指定jar的目录

<localRepository>/var/jenkins_home/tools/apache-maven-3.9.9/repository</localRepository>

设置阿里云镜像

<mirror>
		<!-- 镜像的唯一标识符,可以自定义。 -->
		<id>nexus-aliyun</id>
		<!-- 指定该镜像所对应的原始仓库。你可以使用通配符来匹配多个原始仓库。例如,使用“*”表示匹配所有原始仓库。。-->
		<mirrorOf>*</mirrorOf>
		<!-- 镜像的名称,可以自定义。 -->
		<name>Nexus aliyun</name>
		<!-- 镜像的URL地址。你需要提供一个有效的镜像地址。 -->
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>

为tools目录及其里边所有的目录设置权限

chmod -R 777 /var/jenkins_home/tools/

等待Jenkins插件安装完成。

完成后点击使用admin账户继续

点击保存并完成

点击插件管理

 

点击Plugins安装插件(maven 插件)

 

完成后,返回首页

继续点击插件管理,选择tools

选择下方jdk安装

选择下方maven配置,完成后保存配置

 然后重启Jenkins

docker restart jenkins

构建项目

1.给要部署的项目中添加打包配置,名称为nacos.jar,名称可根据自己的改

<build>
    <finalName>nacos</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin-->
    </plugins>
</build>

同时,在自己的项目根目录下新建一个Dockerfile文件

 文件内容为(这里是用的jdk 1.8):

FROM openjdk:8
ADD ./target/nacos.jar //
ENTRYPOINT ["java", "-jar", "/nacos.jar"]

大概的意思是就是基于Dockerfile把项目打包成docker镜像,并随着容器启动自动启动项目

2.将代码推送到远程,这里使用的是gitee

3.进入Jenkins页面,新建任务,输入名称,选择第一个选项

 源码管理中选择git,同时输入自己的git地址,添加选择Jenkins

输入自己的git账号个密码

 选择自己的git账号

可以选择定时构建等,这里未选择

点击下方构建步骤 ,选择maven目标

选择maven后,进行配置

clean install -Dmaven.test.skip=true

保存,点击立即构建。(查看控制台输出)

构建成功后,在jenkin_home文件夹下会出现workspace文件夹

找到自己要部署的项目的jar,在target下,记录此路径

4.启动项目容器

启动项目的原理是通过Dockerfile构建项目镜像,并自动启动容器。我们项目和jenkins在同一台服务器,所以我们用shell脚本运行项目,原理既是通过dockerfile 打包镜像,然后docker运行即可。

选择自己的构建任务,点击配置

点击新增构建步骤,选择执行shell,输入下面的命令。

该命令中,cd后则是拉取代码后target所在的目录

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

点击保存,点击构建此次任务,查看控制台

出现下面错误,可能是权限不足,执行以下命令,重新构建此次任务

chmod 777 /var/run/docker.sock

出现下图,则构建成功

然后,执行docker ps,查看容器是否启动成功

本次是nacos,可在浏览器出入nacos的ip,进入首页看是否执行成功.

整个流程:

  • 1.程序员用IDEA将代码推送到GIT远程仓库
  • 2.Jenkins通过Git客户端从Git仓库中拉取最新的代码
  • 3.Jenkins执行maven命令打包项目:clean install
  • 4.Jenkins执行脚本,cd到代码目录,执行docker build,根据Dockerfile 构建镜像
  • 5.执行脚本 docker run 启动容器

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker里面不能使用vim的问题及解决

    docker里面不能使用vim的问题及解决

    这篇文章主要介绍了docker里面不能使用vim的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 在Jenkins Docker容器中切换到root用户并解决权限问题的完整指南

    在Jenkins Docker容器中切换到root用户并解决权限问题的完整指南

    在使用Jenkins构建和部署项目时,可能会遇到一些操作需要root用户权限,比如安装软件包、创建软链接等,在Jenkins的Docker容器中,默认是以非特权用户运行的,这意味着你可能会遇到权限不足的问题,本文将教你如何在Jenkins容器中切换到root用户,需要的朋友可以参考下
    2025-08-08
  • 物理机与启动的Docker容器间的目录映射方式

    物理机与启动的Docker容器间的目录映射方式

    这篇文章主要介绍了物理机与启动的Docker容器间的目录映射方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • MySQL容器中docker-entrypoint-initdb.d目录的使用

    MySQL容器中docker-entrypoint-initdb.d目录的使用

    这篇文章主要介绍了MySQL容器中docker-entrypoint-initdb.d目录的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 优化docker镜像体积的方法详解

    优化docker镜像体积的方法详解

    镜像的本质是镜像层和运行配置文件组成的压缩包,构建镜像是通过运行 Dockerfile 中的 RUN 、COPY 和 ADD 等指令生成镜像层和配置文件的过程,本文给大家介绍了如何优化 docker 镜像体积,需要的朋友可以参考下
    2025-03-03
  • docker清空日志文件几种方法实现

    docker清空日志文件几种方法实现

    docker 用久了 日志一大堆,很占用空间,不用的日志可以清理掉了,下面这篇文章主要介绍了docker清空日志文件几种方法实现的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-11-11
  • docker部署微信小程序自动构建发布和更新的详细步骤

    docker部署微信小程序自动构建发布和更新的详细步骤

    通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及到几个步骤,下面给大家分享docker部署微信小程序自动构建发布和更新的详细步骤,感兴趣的朋友一起看看吧
    2024-12-12
  • 国内服务器配置Docker国内源(极限加速)

    国内服务器配置Docker国内源(极限加速)

    本文主要介绍了国内服务器配置Docker国内源,用户可以在CentOS服务器上成功安装并使用国内镜像加速器来提升Docker的使用,感兴趣的可以了解一下
    2025-02-02
  • 容器Docker入门详解

    容器Docker入门详解

    这篇文章主要介绍了容器Docker入门详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Docker compose搭建ELK服务基本使用

    Docker compose搭建ELK服务基本使用

    这篇文章主要为大家介绍了Docker compose搭建ELK服务基本使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论