搭建Harbor--企業級docker私有倉庫

什麼是Harbor?

Harbor 是 VMware 公司開源的企業級 DockerRegistry 項目,項目地址點擊這裏,它的目標是幫助用戶迅速搭建一個企業級的 Docker registry 服務。它以 Docker 公司開源的 registry 爲基礎,提供了管理UI,基於角色的訪問控制(Role Based Access Control),AD/LDAP集成、以及審計日誌(Auditlogging) 等企業用戶需求的功能,同時還原生支持中文。Harbor 的每一個組件都是以 Docker 容器的形式構建的,使用 Docker Compose 來對它進行部署。html

環境準備

一、阿里雲學生機(1核2G Centos7以上)
二、docker 版本:18 (最新也成)
三、docker-compose:1.24 (最新也成)
四、Harbor:1.1.2mysql

安裝docker和docker-compose

docker的安裝看這裏
docker-compose安裝看這裏
另外的提醒,docker必定要換鏡像源,示例看這裏linux

安裝Harbor

推薦我這種方式下載Harbor的離線安裝包
nginx

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
以上方式取決與你的服務器網速和寬帶了,因此連接放入迅雷,速度賊快,而後再把用xftp把安裝包放入服務器
tar -zxvf harbor-offline-installer-v1.1.2.tgz -C 你想解壓到的路徑
複製代碼

解壓以後會在解壓的路徑中看到harbor.cfg文件,主要是修改主機IPgit

# 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 = 你的主機IP:端口
值得一提的是,若是你這裏不帶端口,儘可能這裏不要使用5000端口,Harbor會默認80端口的
複製代碼

若是你在harbor.cfg文件中將你的IP後面加上端口的話,也要修改docker-compose.yml,沒有加上的話不用修改github

proxy:
    image: vmware/nginx:1.11.5-patched
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      - 端口: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"

複製代碼

這裏若是你想修改倉庫存儲鏡像的路徑話,請修改如下地方sql

registry:
    image: vmware/registry:2.6.1-photon
    container_name: registry
    restart: always
    volumes:
      - /data/registry:/storage:z    修改宿主機的路徑成你想要的路徑就好
      - ./common/config/registry/:/etc/registry/:z
    networks:
      - harbor
    environment:
      - GODEBUG=netdns=cgo
    command:
      ["serve", "/etc/registry/config.yml"]
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "registry"

複製代碼

運行安裝腳本
docker

sh install.sh
複製代碼

一旦出現如下語句就是安裝成功了json

----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://你的IP:端口. 
For more details, please visit https://github.com/vmware/harbor .
複製代碼

以後你就能夠訪問http://你的IP:端口,這裏默認的管理員帳號是admin/Harbor12345,建議使用管理帳號登陸以後在UI界面裏修改以防不測centos

Login And Push/Pull

若是你使用docker login 你的IP:端口 出現如下狀況

[root@xxx harbor]# docker login xxxx:端口
Username: admin
Password: 
Error response from daemon: Get https://xxxx:端口/v2/: http: server gave HTTP response to HTTPS client
複製代碼

這種狀況是由於這是由於docker默認不容許非HTTPS方式推送鏡像. 咱們能夠經過docker配置來取消這個限制, 或者配置可以經過 HTTPS 訪問的私有倉庫。
若是你的linux是Ubuntu16.04+、Debian 8+、centos 7+,請在/etc/docker/daemon.json中追加如下內容:

{
    "insecure-registries": ["xxxx:端口"]
}
複製代碼

而後再從新加載docker

systemctl reload docker
複製代碼

正確的docker pull/push應該按照如下例子來

docker login 你的IP:端口
輸入帳號密碼

docekr tag 鏡像名稱:標籤 你的IP:端口/項目名稱/鏡像名稱:標籤
docker push 你的IP:端口/項目名稱/鏡像名稱:標籤
複製代碼

解釋一下,harbor裏有個默認公開的項目library,這個是不用登錄就能夠隨意push/pull的,因此通常來講咱們會新建一個私有項目,不登陸沒法push/pull

刪除Harbor

刪除Harbor保留數據

docker-compose down -v
複製代碼

刪除數據(對應docker-compose.yml裏面的數據卷)

前提是你沒有改變docker-compose.yml裏面的數據卷
rm -r /data/*
複製代碼
相關文章
相關標籤/搜索