docker harbor的安装使用以及镜像上传和拉取

harbor

        harbor是一个开源的容器镜像仓库,可用于存储和分发docker镜像。它提供了安全性、标签、注释、审核和访问控制等高级功能。 harbor旨在帮助用户管理和分发docker镜像,并使其更具可信度和可管理性。

harbor安装

  1. 下载并安装docker和docker compose,没有下载的可以看这篇文章docker安装启动
  2. 下载harbor的安装包,可以从(官网)或(GitHUb)上下载。
  3. 新建目录,上传下载好的harbor软件包
[root@xia harbor]# ls
harbor-offline-installer-v2.7.2.tgz
  1. 解压
[root@xia harbor]# tar xzvf harbor-offline-installer-v2.7.2.tgz 
harbor/harbor.v2.7.2.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[root@xia harbor]# ls
harbor  harbor-offline-installer-v2.7.2.tgz
  1. 进入解压目录,修改配置文件,复制一份配置文件
[root@xia harbor]# cp harbor.yml.tmpl harbor.yml
[root@xia harbor]# vim harbor.yml
# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 192.168.40.138

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8888

# 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
 .....
 harbor_admin_password: Harbor12345
  1. 执行./prepare命令,准备 Harbor 部署所需的一些配置和依赖项
[root@nfs harbor]# ./prepare  
  1. 执行安装脚本./install.sh
[root@nfs harbor]# ./install.sh 

[Step 0]: checking if docker is installed ...

Note: docker version: 23.0.4

[Step 1]: checking docker-compose is installed ...

Note: Docker Compose version v2.17.2

[Step 2]: loading Harbor images ...
……


[Step 3]: preparing environment ...

[Step 4]: preparing harbor configs ...
……

[Step 5]: starting Harbor ...
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                                         0.7s 
 ✔ Container harbor-log         Started                                                                                                         1.1s 
 ✔ Container harbor-portal      Started                                                                                                         3.4s 
 ✔ Container redis              Started                                                                                                         3.4s 
 ✔ Container registryctl        Started                                                                                                         3.7s 
 ✔ Container harbor-db          Started                                                                                                         3.8s 
 ✔ Container registry           Started                                                                                                         3.7s 
 ✔ Container harbor-core        Started                                                                                                         4.5s 
 ✔ Container nginx              Started                                                                                                         6.7s 
 ✔ Container harbor-jobservice  Started                                                                                                         6.4s 
✔ ----Harbor has been installed and started successfully.----
  1. 浏览器访问,用户名为admin,密码是Harbor12345,登录成功后看到如下界面

harbor上传和拉取镜像

上传

1. 登录Harbor

docker login 192.168.40.138:8888

        但是在这里登录会直接报错,提示Error response from daemon: Get “https://192.168.40.138:8888/v2/”: http: server gave HTTP response to HTTPS client
解决:
进入/etc/docker/daemon.json,添加如下内容,允许 docker 守护程序使用 HTTP 连接到注册表。

{
    "insecure-registries": [
        "192.168.40.138:8888"
    ]
}

重启docker服务

systemctl restart docker 

登录成功

[root@xia harbor]# docker login http://192.168.40.138:8888
Username: admin
Password: 
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

2. 打标签

在上传镜像前,需要为镜像打上标签,命令如下:

docker tag <image_name> <harbor_host>/<project_name>/<image_name>:<tag>

其中,image_name是要上传的镜像名称,project_name是Harbor中的项目名称,tag是镜像的版本号。
在harbor上新建一个images项目,如图所示

打上包含images项目的标签

[root@xia harbor]# docker tag nginx 192.168.40.138:8888/images/nginx

3. 上传镜像

docker push <harbor_host>/<project_name>/<image_name>:<tag>
[root@xia harbor]# docker push 192.168.40.138:8888/images/nginx
Using default tag: latest
The push refers to repository [192.168.40.138:8888/images/nginx]
ff4557f62768: Pushed 
4d0bf5b5e17b: Pushed 
95457f8a16fd: Pushed 
a0b795906dc1: Pushed 
af29ec691175: Pushed 
3af14c9a24c9: Pushed 
latest: digest: sha256:bfb112db4075460ec042ce13e0b9c3ebd982f93ae0be155496d050bb70006750 size: 1570

查看

拉取

1. 登录Harbor

docker login 192.168.40.138:8888

2. 拉取镜像

命令如下:

docker pull <harbor_host>/<project_name>/<image_name>:<tag>

其中,image_name是要拉取的镜像名称,project_name是Harbor中的项目名称,tag是镜像的版本号。
拉取成功

[root@xia harbor]# docker pull 192.168.40.138:8888/images/mysql:5.7.39
5.7.39: Pulling from images/mysql
Digest: sha256:b39b95329c868c3875ea6eb23c9a2a27168c3531f83c96c24324213f75793636
Status: Image is up to date for 192.168.40.138:8888/images/mysql:5.7.39
192.168.40.138:8888/images/mysql:5.7.39
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值