ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins+Docker+SpringCloud微服务持续集成之 容器管理

2022-03-03 13:35:37  阅读:175  来源: 互联网

标签:harbor SpringCloud 192.168 eureka Harbor Jenkins 镜像 Docker docker


Jenkins+Docker+SpringCloud微服务持续集成之 容器管理

目录

目标:

需要在Jenkins 主机上安装docker 环境。配置一台Harbor服务器,配置一台应用服务器(配置docker环境)。

实现,Jenkins使用Dockerfile 将 微服务的jar 包制作成镜像,上传到harbor仓库。然后,生产服务器能够从harbor仓库中拉取镜像,并部署为容器

image-20220225104952404


一:服务器配置docker环境


在Jenkins服务器,harbor服务器,web-server 服务器上配置:

关闭防火墙和selinux ,安装必要的软件包

systemctl disable firewalld --now
setenforce 0
sed -i  '/^SELINUX/ s/enforcing/disabled/g' /etc/selinux/config

yum -y install yum-utils device-mappper-persistent-data lvm2


yum-utils 提供了yum-config-manager

device mapper 存储驱动程序需要device-mapper-persistent-data和lvm2

Device Mapper是Linxu2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源的块设备驱动提供了一个高度模块化的内核架构。


设置下载的镜像仓库为阿里的源

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

安装docker-ce,查看版本

yum -y install docker-ce
docker -v

启动Docker,配置阿里云镜像加速

阿里云配置镜像加速:

登录进入阿里云----->点击控制台----->产品与服务搜索"容器镜服务"

----->镜像工具下,点击镜像加速器---->选择合适的操作系统(centos)--->复制代码,服务器上执行

systemctl enable docker --now

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://*******.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


二: Jenkins使用Dockerfile 制作镜像

我们利用Dockerfile制作一个Eureka注册中心的镜像


上传Eureka的jar包到Jenkins服务器

链接:https://pan.baidu.com/s/191_Gda6dYPjD-Rw_KyMYIQ?pwd=8rwc
提取码:8rwc

ls tensquare_eureka_server-1.0-SNAPSHOT.jar

编写Dockerfile,暴露端口为10086

tee ./Dockerfile <<-'EOF'
FROM openjdk:8-jdk-alpine 
ARG JAR_FILE
COPY ${JAR_FILE} app.jar 
EXPOSE 10086
ENTRYPOINT ["java","-jar","/app.jar"]
EOF

构建镜像

docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 .

image-20220225114003748


创建容器

 docker images
 
 docker run -i --name=eureka -p 10086:10086 eureka:v1 

将容器内部的10086与外部的10086端口映射.这样,可以通过访问外部的10086端口,访问到内部的10086端口

image-20220225114335061


浏览器访问

image-20220225114433295



三:harbor服务器配置harbor仓库

harbor 的安装需要先安装Docker,并启动(已完成)


安装docker-compose

链接:https://pan.baidu.com/s/1EIu9DRpZ649gjzgFOKLg-w?pwd=q4p7
提取码:q4p7

ls docker-compose 

chmod  +x docker-compose 
mv docker-compose /usr/local/bin/
ls /usr/local/bin/docker-compose 


安装Harbor

链接:https://pan.baidu.com/s/1PIwIPTL4s4Z3qfFj0KTz4A?pwd=y7w2
提取码:y7w2

ls harbor-offline-installer-v1.9.2.tgz 
tar -zxvf harbor-offline-installer-v1.9.2.tgz 
mv harbor /opt/harbor
cd /opt/harbor/


修改Harbor的配置(修改hostname和port)

vim harbor.yml
5// hostname: 192.168.23.204
10//  port: 85

image-20220225115912830


安装Harbor

docker必须启动状态

 ./prepare 
 ./install.sh 

启动Harbor和 Harbor的控制命令

docker-compose up -d 启动

#其他控制指令:
docker-compose stop 停止
docker-compose restart 重新启动

浏览器访问

默认账户密码:admin/Harbor12345

image-20220225120511939

image-20220225120546795


创建新的用户

image-20220225133527290

image-20220301105935053


创建新项目,配置新项目的成员

image-20220225133750681

image-20220225133821646


将成员添加到项目

image-20220225133859808

image-20220225133930682

image-20220301110023794

image-20220301110046641

角色 权限说明
访客 对于指定项目拥有只读权限
开发人员 对于指定项目拥有读写权限
维护人员 对于指定项目拥有读写权限,创建 Webhooks
项目管理员 除了读写权限,同时拥有用户管理/镜像扫描等管理权限

以新用户登录Harbor

image-20220301110124586


四:在Jenkins上 上传镜像到Harbor

给镜像打上标签

docker tag eureka:v1 192.168.23.204:85/tensquare/eureka:v1

将Harbor地址加入到Docker信任列表

 vim  /etc/docker/daemon.json 
 {
  "registry-mirrors": ["https://k0ki64fw.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.23.204:85"]
}


 systemctl restart docker

image-20220225135108464

如果不加上信任列表,则会报错:

The push refers to repository [192.168.23.204:85/tensquare/eureka]
Get "https://192.168.23.204:85/v2/": http: server gave HTTP response to HTTPS client

image-20220225134927711


登录Harbor

#docker login -u 用户名 -p 密码 仓库地址
docker login -u om -p Abcd1234 192.168.23.204:85

image-20220301110319492


上传镜像

docker push 192.168.23.204:85/tensquare/eureka:v1

image-20220225135658132


五: 应用服务器从Harbor上拉取镜像

安装配置docker(以完成),将Harbor仓库添加到Docker信任列表

 vim  /etc/docker/daemon.json 
 {
  "registry-mirrors": ["https://k0ki64fw.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.23.204:85"]
}


 systemctl restart docker

登录Harbor,拉取镜像

docker login -u tom -p Abcd1234 192.168.23.204:85
docker pull 192.168.23.204:85/tensquare/eureka:v1
docker images 

image-20220301110549738


启动容器,浏览器访问

docker run -i --name=eureka -p 10086:10086 192.168.23.204:85/tensquare/eureka:v1

image-20220225140452954


至此,docker 的harbor仓库搭建完毕,并且,Jenkins能够上传镜像到harbor,生 产服务器可以从harbor上拉取镜像

标签:harbor,SpringCloud,192.168,eureka,Harbor,Jenkins,镜像,Docker,docker
来源: https://www.cnblogs.com/zhijiyiyu/p/15959327.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有