欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS7.6上使用docker harbor管理私有仓库

程序员文章站 2022-04-26 09:18:03
...

一、安装配置

操作系统: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
相关标签: 持续集成部署