CentOS7.6上使用docker harbor管理私有倉庫

一、安裝配置

操作系統: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章