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
上一篇: Maven POM 配置 spring boot 项目
下一篇: Spring Boot项目pom