一、安裝配置
操作系統:CentOS7.6+Docker。
使用docker Harbor來管理私有倉庫。
(一)安裝docker、docker-compose、harbor
安裝docker(需要1.17.06版本以上)。
//添加源
yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//查看版本
yum list docker-ce --showduplicates | sort -r
//安裝docker
yum install docker-ce -y
設置docker自動運行。
systemctl enable docker
systemctl start docker
安裝docker-compose,用於啓停harbor。
yum install docker-compose
從官網下載harbor安裝包。
wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz
解壓後得到harbor目錄。
tar -zxvf harbor-offline-installer-v1.10.1.tgz
修改harbor.yml,修改的內容:
- hostname:改成主機IP。 http.port:默認將佔用80端口。 https:如果要啓動https還需要配置ssl證書。
- harbor_admin_password:harbor管理員密碼。
- database.password:數據庫密碼。
- data_volume:數據存放目錄,默認/data。
執行安裝腳本。
./prepare
./install.sh
設置harbor自啓動,創建/usr/lib/systemd/system/harbor.service,設置系統每次啓動時調用,內容如下:
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
引用:https://github.com/goharbor/harbor/issues/7008。
(二)配置harbor的https訪問
配置如下:
//生成CA證書
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
//生成證書籤名請求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout 192.168.3.6.key -x509 -out 192.168.3.6.crt
執行命令時一路默認,到詢問Common Name時填入ip地址。在harbor.yml中設置https.certificate爲192.168.3.6.crt,https.private_key爲192.168.3.6.key。
注:192.168.3.6爲你服務器的ip地址或域名。
(三)配置docker訪問
配置鏡像,修改/etc/docker/daemon.json爲以下內容:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com",
"https://reg-mirror.qiniu.com"
]
}
如果harbor是http訪問方式,需要將harbor服務器設置爲,在/etc/docker/daemon.json中添加:
"insecure-registries":["103.45.109.29"]
二、使用
(一)說明
賬號:一般可使用三個角色:管理員、開發人員、訪客。管理員有全部權限,開發人員有pull、push權限,訪客有pull權限。庫:默認帶library庫,這個庫一般用於放官方庫。其他庫可自建,一般可建立build庫和test庫,用於發佈和流水線測試。
(二)向harbor中推送鏡像
以mysql爲例,向library庫中推送。
//從docker hub上pull一個mysql的官方鏡像
docker pull mysql:5.7.29
//登錄harbor
docker login 127.0.0.1:8041
//打標
docker tag mysql:5.7.29 127.0.0.1:8041/library/mysql:5.7.29
//push到harbor中
docker push 127.0.0.1:8041/library/mysql