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

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

目录

目标:

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

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

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


一:服务器配置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 .

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


创建容器

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

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

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


浏览器访问

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



三: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

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


安装Harbor

docker必须启动状态

 ./prepare 
 ./install.sh 

启动Harbor和 Harbor的控制命令

docker-compose up -d 启动

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

浏览器访问

默认账户密码:admin/Harbor12345

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

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


创建新的用户

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

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


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

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

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


将成员添加到项目

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

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

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

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

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

以新用户登录Harbor

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


四:在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

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

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

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

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


登录Harbor

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

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


上传镜像

docker push 192.168.23.204:85/tensquare/eureka:v1

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


五: 应用服务器从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 

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


启动容器,浏览器访问

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

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


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

上一篇:PHP中查询指定时间范围内的所有日期,月份,季度,年份


下一篇:cetnos安装Jenkins