栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

[基于harbor部署私有仓库] 4 推送镜像到harbor

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[基于harbor部署私有仓库] 4 推送镜像到harbor

目录

1 场景解释

2 配置推送docker

3 推送

3.1 准备

3.2 标记镜像

3.3 登录docker(可省)

3.4 推送镜像

3.5 查看

4 参考 

5 你们可能遇到的问题

5.1 server gave HTTP response to HTTPS client 

5.1.1 可能原因1

5.1.2 可能原因2

5.1.3 解决方案


上一篇已经分享了,如何部署一个harbor服务,以及harbor平台的介绍。

这一篇介绍如何给harbor仓库推送镜像。

1 场景解释

推送往往场景是:Harbor搭建在A机器(centos系统),docker安装在B机器(centos系统),现在在B机器打包然后推送到A机器。

但是呢,本次案例里头,我是在harbor机器上演示了docker推送给harbor,跟上面场景没区别,只是上面场景是不同机器推送,我这边是同一台机器推送,但是操作流程都是一样的。

2 配置推送docker

假如b机器上要将镜像推送到a机器上,那么b机器上的docker需要配置镜像源,该镜像源指向a机器。

将配置文件:/etc/docker/daemon.json

配置成:

{
  "registry-mirrors": ["https://k1ktap5m.mirror.aliyuncs.com"],
  "insecure-registries": ["http://192.168.211.5:80"]
}
  1. registry-mirrors配置的是加速镜像源,
  2. insecure-registries配置就是a机器的镜像源地址,注意,不可省略http和80端口(这个端口就是harbor.yml上配置的http端口),不然就会推送失败

3 推送

3.1 准备

先拉取一个镜像下来做试验用:

docker pull nginx

3.2 标记镜像

给待推送的镜像打标记,打标记命令格式如下:

docker tag SOURCE_IMAGE[:TAG] 192.168.211.5:80/library/REPOSITORY[:TAG]

稍微解释下:

  1. SOURCE_IMAGE[:TAG]表示当前docker已存在的某个版本的镜像
  2. library表示的是harbor里头的某个项目名称,表示镜像推送给这个项目
  3. 注意,其中ip和端口都不要省(尤其在http协议里头)

比如我要推送nginx到harbor仓库,打的标记如下:

docker tag nginx:latest 192.168.211.5:80/library/nginx:latest

3.3 登录docker(可省)

执行以下命令

docker login 192.168.211.5:80

登出docker的命令:

docker logout

登录日志如下:

[root@localhost harbor]# docker login 192.168.211.5:80
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

3.4 推送镜像

给我的harbor推送镜像的命令格式如下:

docker push 192.168.211.5:80/library/REPOSITORY[:TAG]

看命令就知道,docker push后面的其实就是打标记的时候标记。

比如我要推送上面已经打好标记的镜像,命令如下:

docker push 192.168.211.5:80/library/nginx:latest

日志如下:

[root@localhost harbor]# docker tag nginx:latest 192.168.211.5:80/library/nginx:latest
[root@localhost harbor]# docker push 192.168.211.5:80/library/nginx:latest
The push refers to repository [192.168.211.5:80/library/nginx]
fac15b2caa0c: Pushed 
f8bf5746ac5a: Pushed 
d11eedadbd34: Pushed 
797e583d8c50: Pushed 
bf9ce92e8516: Pushed 
d000633a5681: Pushed 
latest: digest: sha256:6fe11397c34b973f3c957f0da22b09b7f11a4802e1db47aef54c29e2813cc125 size: 1570

3.5 查看

镜像推送成功之后,在harbor上对应的项目里头就可以查看到推送上来的镜像如下:

点击镜像,进入到镜像详情页面

4 参考 

我安装过程参考了一些材料,同时如果你们想要部署https的推送通道的话,也可以从下面的几篇文章做点参考

k8s搭建安装 Harbor 私有镜像仓库(详细) - wangzy-Zj - 博客园一、设置主机名(可忽略) # 设置 Harbor 服务器主机名 hostnamectl set-hostname harbor.wangzy.com 二、安装docker 服务 安装 Docker 服https://www.cnblogs.com/wangzy-Zj/p/14011228.html

如何推送docker镜像到harbor_wh_computers的博客-CSDN博客1.harbor创建用户选择创建用户依次填写信息2.创建项目点击新建项目不公开可以不选点击项目选择成员,选择用户这里五个级别代表对仓库的访问权限,这里选择开发者对仓库具有pull和push的权限3.查询推送命令选择推送命令可以看到docker需要先tag镜像指定格式然后push4.推送镜像这里在另外一个服务器上测试修改本机的docker配置文件并重启docker,注意重启docker前先重新加载配置文件vim /etc/dhttps://blog.csdn.net/wh_computers/article/details/115644071

5 你们可能遇到的问题

5.1 server gave HTTP response to HTTPS client 

问题如题。

该问题出现的可能原因有多个,我这边试过两种情况会出现这个问题,这两种情况都是在daemon.json的配置项insecure-registries上

5.1.1 可能原因1

/etc/docker/daemon.json中的insecure-registries配置如下:

 "insecure-registries": ["192.168.211.5:80"]

上面这样配置出错原因是,默认如果不加协议,docker默认通过https的方式请求harbor

5.1.2 可能原因2

镜像打tag的时候格式不对

错误示范:

docker tag nginx:latest 192.168.211.5/library/nginx:latest

错误原因:如果只指定了ip,那么默认会通过https去访问harbor的443端口

正确写法:

docker tag nginx:latest 192.168.211.5:80/library/nginx:latest

上面这种写法,告诉docker访问80端口,80是http的默认端口

5.1.3 解决方案

参考:

【解决方法】Docker push 报错 server gave HTTP response to HTTPS client_风雪夜归人的博客-CSDN博客背景:Harbor搭建在A机器(centos系统),docker安装在B机器(centos系统),现在在B机器打包然后推送到A机器报错 server gave HTTP response to HTTPS client原因:因为客户端push的时候采用https协议,而registry未使用https导致的。解决办法:如果你的harbor服务器是http访问,那么修改registry为httpvim /etc/docker/daemon.json加入这一行{"insecure-regishttps://blog.csdn.net/qq_36715271/article/details/118413951下一篇我们来分享下k8s使用harbor私有镜像仓库。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号