Harbor是一个开源的企业级容器镜像仓库管理系统,旨在提供安全、可信赖的容器镜像管理解决方案。它由VMware公司开发并贡献给CNCF(云原生计算基金会)进行维护。
Harbor提供了一系列功能来帮助用户管理和存储容器镜像,包括:
总之,Harbor是一个功能强大、安全可靠的容器镜像仓库管理系统,适用于企业级容器化环境,为用户提供了完善的容器镜像管理解决方案。
没有科学🪜上网工具,下载速度可能会比较慢
wget https://github.com/goharbor/harbor/releases/download/v2.6.2/harbor-offline-installer-v2.6.2.tgz
下载解压后,将harbor.yml 中的hostname修改成localhost 并且注释https部分,以防不知名bug产生。harbor.yml 可cp harbor.yml.tmpl harbor.yml
得到
hostname: localhost
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80
# https related config
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
然后执行 ./install.sh ,成功后如下图:
mkdir goweb
cd goweb
go mod init goweb
package main
import "github.com/gin-gonic/gin"
func main() {
g := gin.Default()
g.Routes()
g.GET("/hello", func(context *gin.Context) {
context.JSON(200, gin.H{
"message": "hello",
})
})
g.Run(":8081")
}
go mod tidy
下载依赖注意:Dockerfile中使用的golang版本可以查看自己电脑
go version
# 在goland环境下对链程序进行编译
FROM golang:1.21.5 as builder
LABEL authors="yunyuanshengzhinan"
# 将当前目录添加到容器
ADD . /goweb
RUN go env -w GOPROXY=https://goproxy.cn,direct && cd /goweb && go build ./main.go
# 完成编译后,将编译成功的二进制文件copy到新的容器当中,减小容器的大小
FROM alpine:latest
RUN mkdir -p /goweb
COPY --from=builder /goweb/main /bin/main
EXPOSE 8081
WORKDIR /goweb
ENTRYPOINT [ "/bin/main" ]
执行 docker build -t goweb:v0.1 .
进行打包操作。
docker login localhost:80 -u admin -p Harbor12345
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
be9874d47f6e 是我自己的,可以执行docker images进行查看
docker tag be9874d47f6e localhost/library/goweb:v0.1
docker push localhost/library/goweb:v0.1
如果出现以下错误:
unauthorized: unauthorized to access repository: library/goweb, action: push: unauthorized to access repository: library/goweb, action: push
则重新进行登陆:docker login localhost -u admin -p Harbor12345
。然后再继续执行docker push操作。
未完待续…
下一期讲解,如何从harbor进行拉取。
关注微信公众号:云原生实战指南,带你学习更多云原生知识。