天天看點

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

使用Harbor搭建Docker私有倉庫

我最新最全的文章都在 南瓜慢說 www.pkslow.com ,歡迎大家通路!

1 開源的倉庫管理工具Harbor

Harbor

是一個由

CNCF

托管的開源的

Docker

鏡像倉庫管理工具,我們可以通過它快速的建立起自己的私有倉庫。當然,搭建私有倉庫的選擇很多,如

Docker

官方提供的

registry

鏡像或者

Nexus

等。但

Harbor

不失為一種不錯的選擇。

2 安裝

Harbor

的安裝方式也很多,如通過指令行安裝、

Helm

安裝等,本文示範通過指令行的腳本安裝。

2.1 安裝Docker和Docker-compose

首先

Docker

是要安裝的,

Harbor

是通過一堆容器來啟動的。另外還需要安裝

docker-compose

,并對版本有一定要求,這裡通過在

Rancher

的資源庫找到軟體包,配置一下即可:

安裝

Docker-compose

wget http://rancher-mirror.cnrancher.com/docker-compose/v1.27.4/docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
           

2.2 安裝Harbor

2.2.1 下載下傳解壓

先到GitHub Release下載下傳對應的包,有

offline

online

兩種,

offline

比較大,包含的對應的依賴;

online

沒有包含對應的依賴元件,安裝的時候還需要進行下載下傳。這裡使用

online

的包,因為從

Github

下載下傳東西也不見得有多快。

下載下傳:

wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-online-installer-v2.1.1.tgz
           

解壓:

tar zxvf harbor-online-installer-v2.1.1.tgz
           

2.2.2 配置并安裝

準備配置檔案:

cp harbor.yml.tmpl harbor.yml
           

修改配置:

vi harbor.yml

,主要把

https

去掉,并配置伺服器位址和密碼。關鍵配置有:

hostname: 8.134.18.166
http:
  port: 8088
# https related config
#https:
  # https port for harbor, default is 443
  # port: 443
  # The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path
harbor_admin_password: Harbor12345
           

改完配置後就開始執行安裝:

./install.sh
           

安裝成功會有提示。

3 簡單使用

3.1 用admin建立使用者

通路:

http://8.134.18.166:8088/

,即可登陸使用,使用者名為

admin

,密碼預設為

Harbor12345

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

管理使用者

admin

權限太高,要建立一個普通使用者:

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

建立使用者的資訊:

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

3.2 新使用者建立項目

退出

admin

,用新建立的使用者登陸,然後建立一個項目,用于存放鏡像:

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

項目建立成功:

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

3.3 Docker連接配接倉庫

3.3.1 修改docker配置并重新開機

在一台有

docker

的機器上配置

daemon.json

,增加

"insecure-registries": ["http://8.134.18.166:8088"],

vi /etc/docker/daemon.json
           

配置後内容如下:

{
  "insecure-registries": ["http://8.134.18.166:8088"],
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
           

重新開機

Docker

systemctl restart docker
           

3.3.2 登陸與推送鏡像

登陸建立的倉庫:

$ docker login http://8.134.18.166:8088 --username pkslow --password Pk123456
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
           

給其中一個鏡像打個

tag

docker tag nginx 8.134.18.166:8088/pkslow/nginx:latest
           

上傳鏡像到倉庫:

$ docker push 8.134.18.166:8088/pkslow/nginx:latest
The push refers to repository [8.134.18.166:8088/pkslow/nginx]
cdd1d8ebeb06: Pushed 
fe08d9d9f185: Pushed 
280ddd108a0a: Pushed 
f14cffae5c1a: Pushed 
d0fe97fa8b8c: Pushed 
latest: digest: sha256:4949aa7259aa6f827450207db5ad94cabaa9248277c6d736d5e1975d200c7e43 size: 1362
           

到網頁檢查一下,已經有對應的鏡像了:

使用Harbor搭建Docker私有倉庫 - 南瓜慢說

拉取就不示範了。

歡迎關注微信公衆号<南瓜慢說>,将持續為你更新...

多讀書,多分享;多寫作,多整理。