docker及docker-compose安装,docker安装Jenkins
一.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
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,出现下图安装成功
2.:安装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
文件内容为:
default
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
重启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的目录
/var/jenkins_home/tools/apache-maven-3.9.9/repository
设置阿里云镜像
nexus-aliyun
*
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
为tools目录及其里边所有的目录设置权限
chmod -R 777 /var/jenkins_home/tools/
等待Jenkins插件安装完成。
完成后点击使用admin账户继续
点击保存并完成
点击插件管理
点击Plugins安装插件(maven 插件)
完成后,返回首页
继续点击插件管理,选择tools
选择下方jdk安装
选择下方maven配置,完成后保存配置
然后重启Jenkins
docker restart jenkins
三: 构建项目
1.给要部署的项目中添加打包配置,名称为nacos.jar,名称可根据自己的改
nacos
org.springframework.boot
spring-boot-maven-plugin
同时,在自己的项目根目录下新建一个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 启动容器