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

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上拉取镜像

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...