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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值