目录

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,跟上面场景没区别,只是上面场景是不同机器推送,我这边是同一台机器推送,但是操作流程都是一样的。

配置推送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-storeLogin 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私有镜像仓库。

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

  1. Docker上部署SpringBoot项目并推送镜像到Docker Hub上---以MacOS为例

    Docker部署.镜像推送至Docker Hub.拉取.运行 Docker部署 Dockerfile文件内容 文件内容解释 制作镜像 查看镜像 本地运行镜像 镜像推送.拉取.运行 镜像推送 镜像拉取 ...

  2. k8s集群部署项目_JAVA项目(推送镜像到云镜像服务器_这里使用阿里云)---K8S_Google工作笔记0061

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们把我们做好的java项目的那个docker镜像上传到阿里云上去.推送镜像 首先我们登陆阿里 ...

  3. 【Docker】docker推送镜像到harbor

    前提条件 首先你需要有一个Harbor的账号,并在harbor中创建一个项目 第一步:安装docker 传送门:[Docker]Docker 快速入门(精讲)/ 二.Docker 安装 第二步:配置镜 ...

  4. docker kaniko push推送镜像至harbor报错:x509: certificate signed by unknown authority(命令中添加 --skip-tls-ver)

    解决办法:在命令中添加 --skip-tls-verify 标记 完整Dockerfile: FROM ubuntu ENTRYPOINT ["/bin/bash","- ...

  5. k8s管理java项目_Kubernetes集群部署项目-部署Java项目(推送镜像

    Kubernetes(简称k8s)是谷歌开源的一套容器化集群管理系统,当下已被众多大厂及中小企业采用,容器化技术是目前的大势所趋. 本套教程k8s版本升级为最新版1.18.0,内容由浅入深,且更加深化 ...

  6. 如何正确推送镜像到私有仓库Harbor(http方式)

    1 缘起 部署了Harbor之后,就要推送镜像, 为后续K8S拉取镜像做准备. 由于是测试环境,因此使用http方式推送镜像. 但是,推送镜像到Harbor过程中,遇到了一系列问题, 遇到一个解决一个 ...

  7. Docker之使用maven插件【Dockerfile方式】构建并推送镜像到私有仓库

    准备工作 操作系统版本 [root@node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) docker版本 [ ...

  8. IDEA中使用Docker插件构建镜像并推送至私服Harbor

    IDEA中使用Docker插件构建镜像并推送至私服Harbor 一.开启Docker服务器的远程访问 1.1 开启2375远程访问 1.2 添加harbor镜像配置 1.3 重启docker服务 二. ...

  9. Docker推送镜像到私有仓库Harbor

    概述 因为项目需要将镜像推送到私有仓库,测试过程中遇到些问题,用文章记录下来. 版本信息 操作系统:银河麒麟V10SP2 Docker:20.10.17 Docker-Compose:1.22 操作步 ...

最新文章

  1. 用于区分IE的:条件注释
  2. python监听器_监听器 - python成长中 - 博客园
  3. 11)PHP,单选框和复选框的post提交方式处理
  4. Java数组与容器类分析资料--数组、List和Set、Map等
  5. 眼科裂隙灯是否伤眼?
  6. linux错误代码0x8008005,利用Windows10自带Linux学习(附带:0x8007019e错误解决方法)...
  7. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...
  8. TR069 ACS模拟器测试脚本
  9. WIN server 2003 安装(AD)域控制器
  10. MATLAB实现高斯-克吕格投影反算
  11. 如何获得静态IP资源?
  12. 敏捷管理 -- 质量和风险管理
  13. python中append函数解析_对python中的pop函数和append函数详解
  14. Colmap论文——《Structure-from-Motion Revisited》论文阅读笔记
  15. 不同类型怎么选择服务器
  16. 诺基亚C2-03 - 简单才是首要的诺基亚C2-03
  17. iOS 横竖屏处理方案
  18. 图像处理方面的sci期刊_图像处理的sci期刊有哪些
  19. 破解PPT密码的方法
  20. mini210s上uboot的移植

热门文章

  1. AI开发过程中常用开发命令及软件安装
  2. Verilog专题(二十三)Lemmings2
  3. linux修改mac地址
  4. linux 重启内核,Linux内核文件重启
  5. Nginx中的location规则与rewrite重写(详解)
  6. MFC C++ 中的内存释放问题
  7. 深度学习(16):print(torch.cuda.is_available()) False的一个解决流程/思路
  8. 2015年西安小升初奥数培训班奥数老师(排名排行)龙虎英雄榜
  9. 速看!deep learning(rnn、cnn)调参的经验
  10. 艺赛旗(RPA)解压缩文件