安装harbor,制作镜像,测试上传下载,数据库部署,准备网站数据/安装harbor,制作镜像,测试上传下载,数据库部署,准备网站数据
harbor
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
项目地址:https://gitcode.com/gh_mirrors/ha/harbor
免费下载资源
·
一、安装harbor
一、安装部署
1、部署harbor
#安装部署
[root@jumpserver ~]# ssh -p2222 operation@192.168.1.252
operation@192.168.1.252's password:
运维人员, JumpServer 开源堡垒机
1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
3) 输入 p 进行显示您有权限的主机.
4) 输入 g 进行显示您有权限的节点.
5) 输入 d 进行显示您有权限的数据库.
6) 输入 k 进行显示您有权限的Kubernetes.
7) 输入 r 进行刷新最新的机器和节点信息.
8) 输入 s 进行中英日语言切换.
9) 输入 h 进行显示帮助.
10) 输入 q 进行退出.
Opt> p
ID | 主机名 | IP | 平台 | 组织 | 备注
------+------------------------------------------+---------------+----------+----------+----------
1 | harbor | 192.168.1.30 | Linux | Default |
2 | nacos | 192.168.1.13 | Linux | Default |
3 | rocketmq | 192.168.1.14 | Linux | Default |
4 | test | 192.168.1.101 | Linux | Default |
页码:1,每页行数:21,总页数:1,总数量:2
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]> 1
[op@harbor ~]$ sudo -s
# 安装部署 docker 及 compose 组件
[root@harbor op]# yum install -y docker-ce docker-compose-plugin
[root@harbor harbor]# systemctl enable --now docker
拷贝harbor-v2.7.0.tgz 到 harbor 主机
[root@jumpserver ~]# scp /root/s4/public/harbor-v2.7.0.tgz 192.168.1.30:/root/
#创建 https 证书,后期harbor使用https的方式访问,使用openssl工具生成一个RSA密钥对,放到/root/tls/,名称为cert.key,秘钥位数2048位;使用openssl工具生成一个有效期为10年的证书,私钥使用之前生成的/root/tls/cert.key文件,将生成的证书保存到/root/tls/cert.crt文件中,并设置证书的主题信息
[root@harbor op]# cd /root/
[root@harbor ~]# tar -xf harbor-v2.7.0.tgz -C /usr/local/
[root@harbor ~]# cd /usr/local/harbor
[root@harbor harbor]# mkdir /root/tls
[root@harbor harbor]# openssl genrsa -out /root/tls/cert.key 2048
[root@harbor harbor]# openssl req -new -x509 -days 3650 -key /root/tls/cert.key -out /root/tls/cert.crt -subj "/C=CN/ST=BJ/L=BJ/O=Tedu/OU=NSD/CN=harbor"
# 修改配置文件
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml
5 hostname: harbor #harbor地址
8 #http: #加上注释
10 #port: 80 #加上注释
17 certificate: /root/tls/cert.crt #nginx的证书文件位置
18 private_key: /root/tls/cert.key #nginx的秘钥文件位置
# 安装harbor
[root@harbor harbor]# ./install.sh
[root@harbor harbor]# docker compose ps # 查看容器状态,全部是healthy
NAME COMMAND SERVICE STATUS PORTS
harbor-core "/harbor/entrypoint.…" core running (healthy)
harbor-db "/docker-entrypoint.…" postgresql running (healthy)
harbor-jobservice "/harbor/entrypoint.…" jobservice running (healthy)
harbor-log "/bin/sh -c /usr/loc…" log running (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal "nginx -g 'daemon of…" portal running (healthy)
nginx "nginx -g 'daemon of…" proxy running (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp
redis "redis-server /etc/r…" redis running (healthy)
registry "/home/harbor/entryp…" registry running (healthy)
registryctl "/home/harbor/start.…" registryctl running (healthy)
1、发布 harbor 服务
通过ELB发布,ELB发布时监听443端口即可
点击提交,点击返回列表
3、访问测试
通过浏览器访问:https://ELB地址
4、制作镜像,测试上传下载
制作启动jar的基础镜像
通过test主机制作镜像,测试上传下载
[root@harbor harbor]# exit
[op@harbor ~]$ logout
[Host]> 4
开始连接到 普通用户op@192.168.1.101 0.1
...
[op@test ~]$ sudo -s
[root@test op]# vim /etc/hosts #配置主机名解析
192.168.1.30 harbor
[root@test op]# yum -y install docker-ce
[root@test op]# mkdir -p /etc/docker
[root@test op]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://harbor:443"],
"insecure-registries": ["harbor:443"]
}
[root@test op]# systemctl enable --now docker
# 登录 harbor 仓库,用户名密码可能和自己的环境不一样,使用直接设置的用户名和密码
[root@test op]# docker login harbor:443
Username: admin #用户名admin
Password: #密码Harbor12345
# 认证信息记录文件在/root/.docker/config.json文件中
制作启动jar的基础镜像
[root@test op]# scp 192.168.1.252:/root/s4/public/myos.tar.xz /root/
[root@test op]# docker load -i /root/myos.tar.xz
[root@test op]# mkdir /root/jar-package
[root@test op]# cd /root/jar-package/
[root@test jar-package]# vim Dockerfile
FROM myos:8.5
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel && yum clean all
CMD ["/bin/bash"]
[root@harbor jar-package]# docker build -t jar:base .
打标签上传jar:base镜像
[root@test jar-package]# docker tag jar:base harbor:443/myimg/jar:base
[root@test jar-package]# docker push harbor:443/myimg/jar:base
打标签上传myos:nginx镜像
[root@test jar-package]# docker tag myos:nginx harbor:443/myimg/tea:nginx
[root@test jar-package]# docker push harbor:443/myimg/tea:nginx
在harboor的web页面可以看到myimg项目中有两个镜像
测试下载
[root@test jar-package]# docker rmi jar:base
[root@test jar-package]# docker rmi harbor:443/myimg/jar:base
[root@test jar-package]# docker pull harbor:443/myimg/jar:base #下载成功
如果harbor停止了,可以使用如下命令启动
[root@harbor k8s]# cd /usr/local/harbor/
[root@test harbor]# docker compose start
可以看到下载次数为1
二、数据库部署
一、购买MySQL数据库
1、部署后端MySQL数据库
下载https://gitee.com/cc-0001/tea项目到自己真机本地,使用华为云的RDS数据库
1、准备学茶网数据库
创建存放学茶网站数据的数据库tarena_tp_tea
创建授权用户teauser,任意主机可以连接,密码Taren123,并授权
导入数据
2、准备验证码数据库
创建存放学茶登录网站验证码数据库cs_mall_passport
创建用户cs_mall_user,任意主机可以连接,密码Taren123,并授权
导入数据
二、购买redis数据库
1、Redis服务部署
使用云数据库GaussDB(for Redis)
命令行连接redis,找到redis负载均衡的地址
使用jumpserver的主机测试
[root@jumpserver ~]# yum -y install redis
[root@jumpserver ~]# redis-cli -h 192.168.1.147 -p 6379 -a Taren123
192.168.1.147:6379> ping
PONG
192.168.1.147:6379>
三、nacos部署
三、nacos服务部署
#通过jumpserver连接nacos
[root@jumpserver ~]# ssh -p2222 operation@192.168.1.252
operation@192.168.1.252's password:
Opt> p #输入p
ID | 主机名 | IP | 平台 | 组织 | 备注
------+------------------------------------------+---------------+----------+----------+---------
1 | harbor | 192.168.1.30 | Linux | Default |
2 | nacos | 192.168.1.13 | Linux | Default |
3 | rocketmq | 192.168.1.14 | Linux | Default |
4 | test | 192.168.1.101 | Linux | Default |
页码:1,每页行数:21,总页数:1,总数量:4
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]> 2 #进入nacos主机
[op@nacos ~]$ sudo -s
#另开一个jumpserver终端,解压tar包
[root@jumpserver ~]# tar -xf package.tar.gz -C /root
#安装nacos,上传nacos到jumpserver主机的root目录下,拷贝到nacoa主机
[root@nacos op]# scp 192.168.1.252:/root/package/nacos-server-2.0.2.tar.gz /root/
[root@nacos op]# tar xf /root/nacos-server-2.0.2.tar.gz -C /usr/local/
#安装JDK8环境并配置环境变量
[root@nacos op]# yum -y install java-1.8.0-openjdk-devel
[root@nacos op]# ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-4.el8.x86_64/ /usr/lib/jvm/jdk8
[root@nacos op]# vim /etc/bashrc #文件末尾添加
...
export JDK8_HOME="/usr/lib/jvm/jdk8"
export NACOS_HOME="/usr/local/nacos"
export PATH=${JDK8_HOME}/bin/:${NACOS_HOME}/bin/:$PATH
[root@nacos nacos]# source /etc/bashrc
#配置nacos
[root@nacos ~]# cd /usr/local/nacos/
[root@nacos nacos]# vim conf/application.properties
33 spring.datasource.platform=mysql
36 db.num=1
39 db.url.0=jdbc:mysql://192.168.1.12:3306/nacos?characterEncoding=utf8&connectTim eout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&se rverTimezone=UTC
40 db.user.0=nacos
41 db.password.0=Taren123
1、nacos服务部署
1、创建nacos库,存储注册中心数据
创建nacos库
创建nacos用户任意主机可以连接,密码Taren123,并授权
导入数据
#修改nacos启动脚本
[root@nacos nacos]# vim bin/startup.sh
55 export MODE="standalone"
87 JAVA_OPT="${JAVA_OPT} -Xms256m -Xmx256m -Xmn128m"
#启动nacos服务
[root@tea nacos]# ./bin/startup.sh
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/bin/java -Xms256m -Xmx256m -Xmn128m -Dnacos.standalone=true -Dnacos.member.list= -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/lib/ext -Xloggc:/usr/local/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/plugins/health,/usr/local/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos -jar /usr/local/nacos/target/nacos-server.jar --spring.config.additional-location=file:/usr/local/nacos/conf/ --logging.config=/usr/local/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with standalone
nacos is starting,you can check the /usr/local/nacos/logs/start.out
#确认nacos服务启动
[root@nacos nacos]# tail -2 logs/start.out
2023-07-05 02:37:20,239 INFO Nacos started successfully in stand alone mode. use external storage
[root@nacos nacos]# jps
3073 Jps
1122 WrapperSimpleApp
2827 nacos-server.jar
[root@nacos nacos]# ss -antpul | grep java
udp UNCONN 0 0 *:52671 *:* users:(("java",pid=5726,fd=68))
udp UNCONN 0 0 *:38540 *:* users:(("java",pid=5726,fd=67))
tcp LISTEN 0 100 *:8848 *:* users:(("java",pid=5726,fd=147))
tcp LISTEN 0 128 *:9848 *:* users:(("java",pid=5726,fd=100))
tcp LISTEN 0 128 *:9849 *:* users:(("java",pid=5726,fd=101))
tcp LISTEN 0 128 *:7848 *:* users:(("java",pid=5726,fd=102))
[root@tea nacos]#
#设置nacos服务开机自启动,文件最后添加
[root@nacos nacos]# vim /etc/rc.d/rc.local
...
/usr/local/nacos/bin/startup.sh
[root@nacos nacos]# chmod +x /etc/rc.d/rc.local
2、通过负载均衡ELB发布nacos
访问nacos,ELB的公网ip:8848/nacos访问,用户名nacos,密码nacos
创建新的名称空间project,用于后期使用
四、RocketMQ服务部署
四、安装RockerMQ
1、安装RockerMQ
依然使用jumpserver管理机器
[root@jumpserver ~]# ssh -p2222 operation@192.168.1.252
operation@192.168.1.252's password:
Opt> p #输入p
ID | 主机名 | IP | 平台 | 组织 | 备注
------+------------------------------------------+---------------+----------+----------+---------
1 | harbor | 192.168.1.30 | Linux | Default |
2 | nacos | 192.168.1.13 | Linux | Default |
3 | rocketmq | 192.168.1.14 | Linux | Default |
4 | test | 192.168.1.101 | Linux | Default |
页码:1,每页行数:21,总页数:1,总数量:4
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]> 3 #进入rocketmq主机
[op@rocketmq ~]$ sudo -s
#安装RocketMQ
[root@rocketmq op]# scp 192.168.1.252:/root/package/rocketmq-all-4.9.4-bin-release.zip /root/
[root@rocketmq op]# unzip /root/rocketmq-all-4.9.4-bin-release.zip
[root@rocketmq op]# mv rocketmq-all-4.9.4-bin-release/ /usr/local/rocketmq
[root@rocketmq op]# ls /usr/local/rocketmq
benchmark bin conf lib LICENSE NOTICE README.md
#安装JDK8环境并RocketMQ环境变量
[root@rocketmq op]# yum -y install java-1.8.0-openjdk-devel
[root@rocketmq op]# ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-4.el8.x86_64/ /usr/lib/jvm/jdk8
[root@rocketmq op]# vim /etc/bashrc #文件末尾添加
...
export JDK8_HOME="/usr/lib/jvm/jdk8"
export ROCKETMQ_HOME="/usr/local/rocketmq"
export PATH=${JDK8_HOME}/bin/:${ROCKETMQ_HOME}/bin/:$PATH
[root@rocketmq op]# source /etc/bashrc
#配置RocketMQ服务
[root@rocketmq op]# cd /usr/local/rocketmq/
[root@rocketmq rocketmq]# vim conf/broker.conf #文件末尾追加
...
namesrvAddr=0.0.0.0:9876 #指定RocketMQ Broker要连接的NameServer的地址和端口,0.0.0.0表示监听所有网络接口
brokerIP1=192.168.1.14 #指定Broker所在主机的IP地址,写自己本机eth0的ip
brokerIP2=127.0.0.1 #写自己本机127.0.0.1
#配置JVM虚拟机参数
[root@rocketmq rocketmq]# vim bin/runserver.sh
71 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSiz e=128m -XX:MaxMetaspaceSize=128m"
[root@rocketmq rocketmq]# vim bin/runbroker.sh
85 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"
#启动RocketMQ服务
[root@rocketmq rocketmq]# nohup bash /usr/local/rocketmq/bin/mqnamesrv -n 0.0.0.0:9876 &> /usr/local/rocketmq/bin/namesrv.log 2>&1 &
[root@rocketmq rocketmq]# nohup bash /usr/local/rocketmq/bin/mqbroker -n 192.168.1.14:9876 autoCreateTopicEnable=true -c /usr/local/rocketmq/conf/broker.conf &> /usr/local/rocketmq/bin/mqbroker.log 2>&1 & #autoCreateTopicEnable=true 是否启用自动创建Topic的功能,地址改成自己本机eth0的ip
#验证RocketMQ启动结果
[root@rocketmq rocketmq]# jps
2787 Jps
1128 WrapperSimpleApp
2697 BrokerStartup
2378 NamesrvStartup
[root@rocketmq rocketmq]# ss -antplu | grep java
tcp LISTEN 0 1024 *:9876 *:* users:(("java",pid=2378,fd=94))
tcp LISTEN 0 1024 *:10909 *:* users:(("java",pid=2697,fd=129))
tcp LISTEN 0 1024 *:10911 *:* users:(("java",pid=2697,fd=128))
tcp LISTEN 0 50 *:10912 *:* users:(("java",pid=2697,fd=124))
2、验证RocketMQ启动结果
#拷贝jar包到rocketmq主机,使用以下命令启动,用于启动RocketMQ控制台;--rocketmq.config.namesrvAddr=192.168.1.14:9876 是指定RocketMQ控制台连接的Name Server的地址和端口
[root@rocketmq rocketmq]# scp 192.168.1.252:/root/package/rocketmq-console-ng-1.0.0.jar /root/
[root@rocketmq rocketmq]# nohup java -jar /root/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr=192.168.1.14:9876 &> /usr/local/rocketmq/bin/rocketmq-console.log 2>&1 & #地址改成自己eth0的ip
另开一个终端查看
[root@rocketmq rocketmq]# ss -antlp #有8080端口
...
LISTEN 0 100 *:8080 *:*
#设置RocketMQ服务开机自启动
[root@rocketmq rocketmq]# vim /etc/rc.d/rc.local #文件末尾追加
nohup bash /usr/local/rocketmq/bin/mqnamesrv -n 0.0.0.0:9876 &> /usr/local/rocketmq/bin/namesrv.log 2>&1 &
nohup bash /usr/local/rocketmq/bin/mqbroker -n 192.168.1.14:9876 autoCreateTopicEnable=true -c /usr/local/rocketmq/conf/broker.conf &> /usr/local/rocketmq/bin/mqbroker.log 2>&1 &
nohup java -jar /root/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr=192.168.1.14:9876 &> /usr/local/rocketmq/bin/rocketmq-console.log 2>&1 &
[root@rocketmq rocketmq]# chmod +x /etc/rc.d/rc.local
3、通过负载均衡发布rocketmq
监听8080端口,浏览器访问 负载均衡ip:8080
GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb
pull image from registry.goharbor.io instead of dockerhub
Update testcase to support Docker Image Can Be Pulled With Credential
Change gitlab project name when user changed.
Update permissions count and permission count total
Change webhook_endpoint_ui
Signed-off-by: stonezdj <stone.zhang@broadcom.com>
Co-authored-by: Wang Yan <wangyan@vmware.com> 9 天前
3dbfd422
Signed-off-by: wang yan <wangyan@vmware.com> 10 天前
更多推荐
已为社区贡献2条内容
所有评论(0)