私有镜像仓库Harbor-v1.5.0搭建与使用


环境准备

  1. 安装docker-ce(过程省略)
  2. 安装docker-compose(过程省略)
  3. 安装harbor

下载Harbor离线安装包

  1. 下载地址:http://harbor.orientsoft.cn/,找个最新的,本文使用v1.5.0版本
  2. 使用 tar xvf harbor-offline-installer-v1.5.0.tgz
  3. 进入到解压后的目录,harbor/

配置harbor.cfg【关键配置】

#hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = harbor.deri.com

# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

#配置admin用户的密码,默认Harbor12345
harbor_admin_password = Harbor12345

#是否只允许admin用户创建项目,everyone是所有人都可以
project_creation_restriction = adminonly

# 是否开启自注册
self_registration = on

# Token有效时间,默认30分钟
token_expiration = 30

配置docker-compose.yml

如果需要修改访问端口,默认80443,也可以不修改.

##此处粘贴部分配置  
  proxy:
    image: vmware/nginx-photon:v1.5.0
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      - 80:80
      - 443:443
      - 4443:4443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

启动harbor

harbor/目录下,执行./install.shharbor会根据当前目录下docker-compose.yml配置,下载相关镜像,并启动。

配置本地hosts文件

配置hosts文件,增加部署机器的 IP 和 域名【域名是harbor.cfg中的hostname

Windows: C:\Windows\System32\drivers\etc\hosts 
Linux: /etc/hosts

访问Harbor

浏览器输入hostname,用户名密码:admin/Harbor12345

Harbor首页

上传镜像

创建项目

注意选择访问级别
Harbor创建项目

使用docker login登录到私有仓库

[root@node4 ~]# docker login harbor.deri.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

这里有个问题

执行上面的一步肯定会报错:Error response from daemon: Get https://harbor.deri.com/v2/users/: dial tcp 192.168.41.139:443: getsockopt: connection refused,原因是docker认为这个仓库不可信,需要在/etc/docker/daemon.json不存在就新建)增加insecure-registries配置,注意是标准的json格式!

{
  "insecure-registries": ["harbor.deri.com"]
}

然后重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

重启harbor服务

#到harbor/目录下执行
docker-compose down -v
docker-compose up -d

本地随便找个镜像

修改其tag,如

docker tag hub.c.163.com/library/mysql:5.7 harbor.deri.com/deri/mysql:5.7

注意tag格式:域名/项目名/镜像名:版本

上传镜像

docker push harbor.deri.com/deri/mysql:5.7

登录UI查看

harbor镜像仓库

从私有镜像仓库拉取镜像

docker pull harbor.deri.com/deri/mysql:5.7

退出登录

docker logout harbor.deri.com

使用结束!接下来创建项目、用户了。


文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
Spring Boot通过注解实现Restful接口权限控制 Spring Boot通过注解实现Restful接口权限控制
创建一个注解AuthToken所有使用这个注解的方法,均要通过权限验证才能访问。 @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented p
2019-10-29
下一篇 
kubernetes集群发布外部服务【mysql、redis并测试】 kubernetes集群发布外部服务【mysql、redis并测试】
有时候我们需要将k8s集群外的服务引入到集群内部来,便于集群内部服务调用,我可以使用Endpoints. 引入外部myql编写k8s-mysql-endpoints.yaml为外部Mysql创建Endpoints apiVersion: v
2019-10-21
  目录