此文檔需要在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
-
執行pip install docker-compose時可能會報一下錯誤導致安裝失敗
報錯: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
下載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
解壓縮后,目錄下會生成harbor.cfg文件
## Configuration file of Harbor
# hostname設置訪問地址,可以使用ip、域名,不可以設置為127.0.0.1或localhost
hostname = 172.16.77.71
# 訪問協議,默認是http,也可以設置https,如果設置https,則nginx ssl需要設置on
ui_url_protocol = http
# mysql數據庫root用戶默認密碼root123,實際使用時修改下
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
# 郵件設置,發送重置密碼郵件時使用
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
# 啟動Harbor后,管理員UI登錄的密碼,默認是Harbor12345
harbor_admin_password = Harbor12345
# 認證方式,這里支持多種認證方式,如LADP、本次存儲、數據庫認證。默認是db_auth,mysql數據庫認證
auth_mode = db_auth
# LDAP認證時配置項
#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
# 是否開啟自注冊
self_registration = on
# Token有效時間,默認30分鐘
token_expiration = 30
# 用戶創建項目權限控制,默認是everyone(所有人),也可以設置為adminonly(只能管理員)
project_creation_restriction = everyone
verify_remote_cert = on
啟動Harbor
修改完配置文件后,在當前目錄執行./install.sh,Harbor服務就會根據當前目錄下的docker-compose.yml開始下載依賴的鏡像,檢測并按照順序啟動各個服務。
啟動完成后,我們訪問剛才設置的hostname即可:http://172.16.77.71/,默認端口是80,如果端口占用,我們可以去修改docker-compose.yml文件中,對應服務的端口映射。
登錄web Harbor
- 輸入用戶名admin 默認密碼(Harbor12345)或已修改密碼登錄系統
其他主機客戶端登錄連接Harbor
docker login -u username -p userpasswd 172.16.77.71
-
會報以下錯誤:
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的默認鏡像存儲路徑在/data/registry目錄下,映射到docker容器里面的/storage目錄下。
這個參數是在docker-compose.yml中指定的,在docker-compose up -d運行之前修改。
如果希望將Docker鏡像存儲到其他的磁盤路徑,可以修改這個參數。
Harbor的服務管理
可以使用docker-compose來管理harbor的啟動、停止和銷毀。但注意必須切換到docker-compose.ym同級目錄下運行一下命令
-
停止Harbor
docker-compose stop
-
啟動harbor
docker-compose start
-
修改配置后啟動
先停止harbor,再修改配置文件harbor.cfg,然后運行prepare腳本應用配置,最后重新創建harbor并運行它 docker-compose down -v vi harbor.cfg prepare docker-compose up -d
-
清理harbor容器,保留鏡像和容器
docker-compose down -v
-
刪除harbor數據庫和鏡像(常用于干凈的重新安裝)
rm -rf /data/database rm -rf /data/registry
-
鏡像刪除和空間回收
Docker命令沒有提供Registry鏡像刪除功能,日積月累,將會產生許多無用的鏡像,占用大量存儲空間。若要刪除鏡像并回收空間,需要調用docker registry API來完成,比較麻煩。Harbor提供了可視化的鏡像刪除界面,可以邏輯刪除鏡像。在維護狀態下可以回收垃圾鏡像的空間。在harbor web端界面對鏡像進行刪除。這只是邏輯刪除 ,實際上宿主機上存放鏡像的目錄大小沒有改變。
-
徹底刪除無用的鏡像
1、首先去界面刪除該鏡像
2、在Harbor宿主機上執行如下命令
先找到當前registry的版本 docker images vmware/registry 列出要刪除的鏡像: docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.1-photon garbage-collect --dry-run /etc/registry/config.yml 注:選項--dry-run只是在最后打印出界面刪除了的但是實際上并未刪除的鏡像層,但是這條命令不會刪除這下鏡像層 運行下面的命令刪除鏡像: 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/