此文檔需要在docker安裝完成之后操作
安裝docker-compose
curl方式
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname - m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
python-pip安裝
-
安裝附加包
yum -y install epel-release
-
安裝pip
yum -y install python-pip
-
更新pip
pip install --upgrade pip
-
安裝docker-compose
pip install docker-compose
-
執(zhí)行pip install docker-compose時(shí)可能會(huì)報(bào)一下錯(cuò)誤導(dǎo)致安裝失敗
報(bào)錯(cuò):Cannot uninstall ‘requests’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
-
解決辦法:
pip install docker-compose --ignore-install requests
-
查看版本信息
docker-compose --version
安裝Harbor
官網(wǎng)下載地址:https://github.com/goharbor/harbor/releases
下載Harbor安裝文件
-
在線安裝:
$ wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz $ tar xvf harbor-online-installer-v1.1.2.tgz
-
離線安裝:
$ wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz $ tar xvf harbor-offline-installer-v1.1.2.tgz
配置Harbor
解壓縮后鹤竭,目錄下會(huì)生成harbor.cfg文件
## Configuration file of Harbor
# hostname設(shè)置訪問地址眠菇,可以使用ip随闺、域名,不可以設(shè)置為127.0.0.1或localhost
hostname = 172.16.77.71
# 訪問協(xié)議屁奏,默認(rèn)是http,也可以設(shè)置https,如果設(shè)置https,則nginx ssl需要設(shè)置on
ui_url_protocol = http
# mysql數(shù)據(jù)庫(kù)root用戶默認(rèn)密碼root123刽酱,實(shí)際使用時(shí)修改下
db_password = root123
max_job_workers = 3
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA
# 郵件設(shè)置,發(fā)送重置密碼郵件時(shí)使用
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
# 啟動(dòng)Harbor后瞧捌,管理員UI登錄的密碼,默認(rèn)是Harbor12345
harbor_admin_password = Harbor12345
# 認(rèn)證方式润文,這里支持多種認(rèn)證方式姐呐,如LADP、本次存儲(chǔ)典蝌、數(shù)據(jù)庫(kù)認(rèn)證曙砂。默認(rèn)是db_auth,mysql數(shù)據(jù)庫(kù)認(rèn)證
auth_mode = db_auth
# LDAP認(rèn)證時(shí)配置項(xiàng)
#ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
#ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
#ldap_uid = uid
#ldap_scope = 3
#ldap_timeout = 5
# 是否開啟自注冊(cè)
self_registration = on
# Token有效時(shí)間骏掀,默認(rèn)30分鐘
token_expiration = 30
# 用戶創(chuàng)建項(xiàng)目權(quán)限控制鸠澈,默認(rèn)是everyone(所有人)柱告,也可以設(shè)置為adminonly(只能管理員)
project_creation_restriction = everyone
verify_remote_cert = on
啟動(dòng)Harbor
修改完配置文件后,在當(dāng)前目錄執(zhí)行./install.sh笑陈,Harbor服務(wù)就會(huì)根據(jù)當(dāng)前目錄下的docker-compose.yml開始下載依賴的鏡像际度,檢測(cè)并按照順序啟動(dòng)各個(gè)服務(wù)。
啟動(dòng)完成后涵妥,我們?cè)L問剛才設(shè)置的hostname即可:http://172.16.77.71/乖菱,默認(rèn)端口是80,如果端口占用蓬网,我們可以去修改docker-compose.yml文件中窒所,對(duì)應(yīng)服務(wù)的端口映射。
登錄web Harbor
- 輸入用戶名admin 默認(rèn)密碼(Harbor12345)或已修改密碼登錄系統(tǒng)
其他主機(jī)客戶端登錄連接Harbor
docker login -u username -p userpasswd 172.16.77.71
-
會(huì)報(bào)以下錯(cuò)誤:
Error response from daemon: Get https://172.16.77.71/v2/: dial tcp 172.16.77.71:443: connect: connection refused
-
解決辦法:
vim /etc/docker/daemon.json { "insecure-registries": ["172.16.77.71:5000","172.16.77.71" ] } systemctl daemon-reload systemctl restart docker.service
再次登錄就可以了
-
上傳鏡像:
docker tag ubuntu:latest 172.16.77.71/ubuntu docker push 172.16.77.71/test/ubuntu:latest
Harbor的默認(rèn)鏡像存儲(chǔ)路徑在/data/registry目錄下帆锋,映射到docker容器里面的/storage目錄下吵取。
這個(gè)參數(shù)是在docker-compose.yml中指定的,在docker-compose up -d運(yùn)行之前修改锯厢。
如果希望將Docker鏡像存儲(chǔ)到其他的磁盤路徑海渊,可以修改這個(gè)參數(shù)。
Harbor的服務(wù)管理
可以使用docker-compose來管理harbor的啟動(dòng)哲鸳、停止和銷毀臣疑。但注意必須切換到docker-compose.ym同級(jí)目錄下運(yùn)行一下命令
-
停止Harbor
docker-compose stop
-
啟動(dòng)harbor
docker-compose start
-
修改配置后啟動(dòng)
先停止harbor,再修改配置文件harbor.cfg徙菠,然后運(yùn)行prepare腳本應(yīng)用配置讯沈,最后重新創(chuàng)建harbor并運(yùn)行它 docker-compose down -v vi harbor.cfg prepare docker-compose up -d
-
清理harbor容器,保留鏡像和容器
docker-compose down -v
-
刪除harbor數(shù)據(jù)庫(kù)和鏡像(常用于干凈的重新安裝)
rm -rf /data/database rm -rf /data/registry
-
鏡像刪除和空間回收
Docker命令沒有提供Registry鏡像刪除功能婿奔,日積月累缺狠,將會(huì)產(chǎn)生許多無用的鏡像,占用大量存儲(chǔ)空間萍摊。若要?jiǎng)h除鏡像并回收空間挤茄,需要調(diào)用docker registry API來完成,比較麻煩冰木。Harbor提供了可視化的鏡像刪除界面穷劈,可以邏輯刪除鏡像。在維護(hù)狀態(tài)下可以回收垃圾鏡像的空間踊沸。在harbor web端界面對(duì)鏡像進(jìn)行刪除歇终。這只是邏輯刪除 ,實(shí)際上宿主機(jī)上存放鏡像的目錄大小沒有改變逼龟。
-
徹底刪除無用的鏡像
1评凝、首先去界面刪除該鏡像
2、在Harbor宿主機(jī)上執(zhí)行如下命令
先找到當(dāng)前registry的版本 docker images vmware/registry 列出要?jiǎng)h除的鏡像: docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.1-photon garbage-collect --dry-run /etc/registry/config.yml 注:選項(xiàng)--dry-run只是在最后打印出界面刪除了的但是實(shí)際上并未刪除的鏡像層腺律,但是這條命令不會(huì)刪除這下鏡像層 運(yùn)行下面的命令刪除鏡像: docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.1-photon garbage-collect /etc/registry/config.yml 再次查看存放鏡像的目錄大修榷獭: du -sh /data/registry/docker/registry/v2/