Docker離不開可靠的鏡像管理,官方默認(rèn)的DockHub憎账,雖然Docker官方也提供了公共的鏡像倉庫Registry面氓,但是功能略顯簡(jiǎn)單。
Harbor是由VMware公司開源的企業(yè)級(jí)的Docker Registry管理項(xiàng)目河咽,它包括權(quán)限管理(RBAC)钠右、LDAP、日志審核忘蟹、管理界面飒房、自我注冊(cè)、鏡像復(fù)制和中文支持等功能媚值。官網(wǎng)在此
1. 系統(tǒng)環(huán)境(harbor需要docker-compose):
#docker version
docker version 19.03.1
#docker-compose version
docker-compose version 1.18.0
#harbor版本:
v1.9.4
2. 下載安裝包:
官方安裝文檔地址:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
harbor安裝分為離線和在線安裝狠毯,本次使用的是離線安裝
安裝包下載地址: https://github.com/goharbor/harbor/releases
wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz
tar zxvf harbor-offline-installer-v1.9.4.tgz
cd harbor/
3. 修改配置文件harbor.yml:
cat harbor.yml | grep -v '#\|^$'
#####
hostname: 10.1.129.123 #需要修改為對(duì)外訪問的地址
http:
port: 81 #需要修改為對(duì)外訪問的端口
harbor_admin_password: Harbor12345
database:
password: root123
max_idle_conns: 50
max_open_conns: 100
data_volume: /data/harbor_registry #可以修改為指定的目錄
clair:
updaters_interval: 12
jobservice:
max_job_workers: 10
notification:
webhook_job_max_retry: 10
chart:
absolute_url: disabled
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
_version: 1.9.0
proxy:
http_proxy:
https_proxy:
no_proxy:
components:
- core
- jobservice
- clair
4. 執(zhí)行安裝:
./install.sh --with-clair #加--with-clair可以檢查鏡像的安全漏洞
安裝完后執(zhí)行docker-compose ps查看啟動(dòng)的容器:
[root@node03 harbor]#docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
clair /docker-entrypoint.sh Up 6060/tcp, 6061/tcp
harbor-core /harbor/harbor_core Up
harbor-db /docker-entrypoint.sh Up 5432/tcp
harbor-jobservice /harbor/harbor_jobservice ... Up
harbor-log /bin/sh -c /usr/local/bin/ ... Up 127.0.0.1:1514->10514/tcp
harbor-portal nginx -g daemon off; Up 8080/tcp
nginx nginx -g daemon off; Up 0.0.0.0:81->8080/tcp
redis redis-server /etc/redis.conf Up 6379/tcp
registry /entrypoint.sh /etc/regist ... Up 5000/tcp
registryctl /harbor/start.sh Up
Harbor啟動(dòng)停止方法(必須在解壓后的安裝目錄運(yùn)行):
docker-compose stop
docker-compose start
docker-compose restart
5. 頁面配置:
訪問之前在harbor.yml中配置的hostname+port(用戶名密碼為harbor.yml中配置的,默認(rèn)為admin/Harbor12345)
在此新建一個(gè)倉庫base_image測(cè)試用:
6. 配置docker信任倉庫:
因?yàn)閐ocker默認(rèn)使用https連接鏡像倉庫褥芒,而此處harbor配置使用的是http嚼松,所以需要配置docker節(jié)點(diǎn)文件信任此倉庫(所有需要使用倉庫的主機(jī)都需要操作一步這個(gè)):
vim /etc/docker/daemon.json
######
{
"insecure-registries": ["10.1.129.123:81"]
}
第一次push之前需要使用docker login 登陸驗(yàn)證下(所有需要使用倉庫的主機(jī)都需要操作一步這個(gè)):
docker login 10.1.129.123:81
######
Username: admin
Password:
Login Succeeded
相關(guān)用戶名密碼等會(huì)存儲(chǔ)在/root/.docker/config.json文件里
6. 測(cè)試推送鏡像到harbor:
docker image ls #找個(gè)鏡像
docker image tag python:3.5.6 10.1.129.123:81/base_image/python:3.5.6 #改tag
docker push 10.1.129.123:81/base_image/python:3.5.6 #push鏡像到harbor
7. 測(cè)試?yán)arbor鏡像:
docker image rm 10.1.129.123:81/base_image/python:3.5.6 #首先刪除之前的鏡像
docker pull 10.1.129.123:81/base_image/python:3.5.6 #測(cè)試再次拉取
至此,Harbor私有鏡像倉庫搭建完成锰扶,盡情體驗(yàn)吧献酗!