安装docker-compose

因为docker-compose下载容易失败, 所以选择从github下载方式安装。

[root@harbor ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
[root@harbor ~]# chmod a+x /usr/local/bin/docker-compose
[root@harbor ~]# docker-compose --version
docker-compose version 1.25.5, build 8a1c60f6

Harbor安装和配置

GitHub下载安装包

地址:https://github.com/goharbor/harbor/releases

[root@harbor ~]# tar -zxvf harbor-offline-installer-v1.10.1.tgz
[root@harbor ~]# mv harbor /usr/local/
[root@harbor ~]# cd /usr/local/harbor/
[root@harbor harbor]# cp harbor.yml harbor.yml.bak

修改配置文件

[root@harbor harbor]# vim harbor.yml
hostname: chinda.com
https:
port: 443
certificate: /data/cert/chinda.com.crt
private_key: /data/cert/chinda.com.key
# harbor管理页面admin用户的密码
harbor_admin_password: admin

修改宿主机hosts

192.168.0.250		chinda.com

配置对Harbor的HTTPS访问

生成机构颁发的证书

  1. 生成CA证书私钥

    openssl genrsa -out ca.key 4096
  2. 生成CA证书

    openssl req -x509 -new -nodes -sha512 -days 3650 \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=chinda/OU=chinda/CN=chinda.com" \
    -key ca.key \
    -out ca.crt

生成服务器证书

证书通常包含一个.crt文件和一个.key文件。

  1. 生成私钥

    openssl genrsa -out chinda.com.key 4096
  2. 生成证书签名(CSR)

    openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=chinda/OU=chinda/CN=chinda.com" \
    -key chinda.com.key \
    -out chinda.com.csr
  3. 生成x509 v3扩展文件

    cat > v3.ext <<-EOF
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names [alt_names]
    DNS.1=chinda.com
    DNS.2=chinda
    DNS.3=harbor
    EOF
  4. 使用v3.ext文件为Harbor主机生成证书

    将chinda.com`CRS和CRT文件名中的替换为Harbor主机名。

    openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in chinda.com.csr \
    -out chinda.com.crt

提供证书给Harbor和Docker

生成ca.crtchinda.com.crtchinda.com.key文件后,必须将它们提供给Harbor和Docker和重新配置使用它们的Harbor。首先创建存放他们的文件夹。

  1. 将服务器证书和密钥复制到Harbor主机的cert文件夹中。

    cp chinda.com.crt /data/cert/
    cp chinda.com.key /data/cert/
    chmod a+x /data/cert/
  2. 转换chinda.com.crtchinda.com.cert,供Docker使用。

    Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书。

    openssl x509 -inform PEM -in chinda.com.crt -out chinda.com.cert
  3. 将服务器证书,密钥和CA文件复制到Harbor主机上的Docker 证书文件夹中。首先创建适当的文件夹。

    cp chinda.com.cert /etc/docker/certs.d/chinda.com/
    cp chinda.com.key /etc/docker/certs.d/chinda.com/
    cp ca.crt /etc/docker/certs.d/chinda.com/
  4. 重启Docker引擎

    systemctl restart docker

运行脚本安装

[root@harbor cert]# cd /usr/local/harbor/
[root@harbor harbor]# ./install.sh

验证

[root@harbor harbor]# docker login https://chinda.com
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

操作

# 查看执行状态。注意,要在项目下执行此命令,不然会抛出异常
docker-compose ps
# 停止/移除存在的实例
docker-compose down -v
# 重启harbor
docker-compose up -d

推送镜像的Docker命令

# 在项目中标记镜像:
docker tag SOURCE_IMAGE[:TAG] chinda.com/library/IMAGE[:TAG]
# 推送镜像到当前项目:
docker push chinda.com/library/IMAGE[:TAG]

鉴权失败401 Unauthorized

[root@harbor harbor]# docker login https://chinda.com
Authenticating with existing credentials...
Login did not succeed, error: Error response from daemon: login attempt to https://chinda.com/v2/ failed with status: 401 Unauthorized
Username (admin): admin
Password:
Error response from daemon: login attempt to https://chinda.com/v2/ failed with status: 401 Unauthorized

解决方案

docker-compose down -v
docker-compose up -d

Docker(二):Docker镜像仓库Harbor搭建的更多相关文章

  1. docker实战——Docker本地私有镜像仓库Harbor搭建及配置

    Harbor介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然docker官方提供了公共的镜像仓库(Docker Hub),但是从安全和效率等方面考虑,部署我们私有环境内的Registr ...

  2. 企业级镜像仓库harbor搭建

    企业级镜像仓库harbor搭建 一.    Harbor概述 VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服 ...

  3. Docker镜像仓库Harbor搭建及配置

    一.harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distribut ...

  4. 【Docker】企业级镜像仓库harbor的搭建(http/https)及使用

    一:用途 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 二:安装docker-ce 环境:阿里云轻量应用服务器CentOS 7.3 这里通过yum Docker源仓 ...

  5. Docker镜像仓库Harbor搭建

    园子里面已经有人写过了.也写得很好,我这里只记录下我遇到的问题 Harbor 依赖: 1:docker 2:docker-compose 怎么安装就不说了. 然后是安装Harbor github:ht ...

  6. Docker(二):Registry 镜像仓库

  7. Docker 企业级镜像仓库 Harbor 的搭建与维护

    目录 一.什么是 Harbor 二.Harbor 安装 2.1.Harbor 安装环境 2.2.Harbor安装 2.3 配置HTTPS 三.Harbor 的使用 3.1.登录Harbor并使用 3. ...

  8. 使用docker搭建“企业级镜像仓库”Harbor

    一.前沿 docker的官方镜像仓库registry,功能比较单一,不太好用,特别是删除镜像操作,不够友好. Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一 ...

  9. docker 镜像仓库 Harbor 部署 以及 跨数据复制

    docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...

随机推荐

  1. The Life out of coding_Employment_01

    1.工作与个人价值 软技能读书笔记第一篇:--From 安晓辉 内生涯与外生涯 内生涯包括知识.技能.工作经验.心理素质.内心情感.行为习惯.视野.观念.职业心态.职业成熟度.心灵成长. 外生涯包括职 ...

  2. python 定时任务框架apscheduler

    文章目录 安装 基本概念介绍 调度器的工作流程 实例1 -间隔性任务 实例2 - cron 任务 配置调度器 方法一 方法二 方法三: 启动调度器 方法一:使用默认的作业存储器: 方法二:使用数据库作 ...

  3. ABBYY FineReader 与尚书七号OCR的对比

    ABBYY FineReader 与尚书七号OCR都是帮助我们识别文字的工具,使用的都是OCR技术,如今文字识别工具是我们学习和工作经常会使用的,它们的功能是否实用和好用?现在通过对比的方式来探讨. ...

  4. MathType如何打出带圆圈的点

    学习了圆的知识后,知道可以用带圆圈的点表示圆,比如"⊙O"表示圆O,即圆心为O的圆.那么要怎么在MathType中打出带圆圈的点? 方法一.直接在工具栏上选择输入 打开MathTy ...

  5. 详解CorelDRAW中刻刀工具的具体运用

    通过CorelDRAW,我们可以将一个对象拆分为两个对象,使用刻刀工具就可以将对象一分为二,保存为一个由两个或者多个子路径组成的对象,可以指定是否要自动闭合路径,或者是否一直将它们打开. CDR刻刀工 ...

  6. [CF1454] Codeforces Round #686 (Div. 3) solution

    标签(空格分隔): 经验 题解 时量 : 2h 概括 : \[\text{2min t1 }\\ \text{10min t2 (hacked)}\\ \text{30min t3 }\\ \text ...

  7. sentinel--初级使用篇

    1.官方资料 github官网地址:https://github.com/alibaba/Sentinel wiki:https://github.com/alibaba/Sentinel/wiki/ ...

  8. Java蓝桥杯——递归练习题:走台阶(偶数版)

    递归练习题:走台阶(偶数版) 小明刚刚看完电影<第39级台阶>.离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个 ...

  9. Java基础教程——JUnit和TDD

    JUnit JUnit是一个Java的单元测试工具. package ah; public class MyCode { public int m1() { System.out.println(&q ...

  10. kafka入门之broker-水印和leader epoch

    每个kafka副本对象都持有2个重要的属性:日志末端位移LEO,高水印HW Kafka对leader副本和follower副本的LEO更新机制是不同的,后面我们会详细讨论. Kafka对leader副 ...