Docker用的越来越多了,这边就想自建一下仓库,搜了一圈Harbor算是比较靠谱的选择,于是记录一下Harbor的部署过程。
部署环境为 Ubuntu 2004
shellfor pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
shell# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
shellsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
shellsudo apt-get install docker-compose
挑一个,后面带offline的就是离线包,带online的就是在线安装包,根据网络环境选择。
注:这里暂时没记录https自签,后面再补,暂时先用http凑合测试一下
这里的harbor.yml.tmpl
重命名为harbor.yml
并修改其中几行就可以完成基础配置,相关其他字段可参考官网
修改其中的
yaml# 修改hostname
hostname: reg.mydomain.com
# https: 先注释掉https的段落
# https port for harbor, default is 443
#port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
#记住这一行的密码或者改成你想要的密码
harbor_admin_password: Harbor12345
运行prepare脚本启用HTTPS服务
shell./prepare
# 运行安装脚本
./install.sh
这边遇到了一个很神奇的问题,无法登录。 用户名和密码都是对的但是无法登录(401),找了一大圈最后去数据库中修改了密码的加密方式可以正常登录了,但是在此之前数据库中也修改了默认密码,但是还是不行。所以我把我做过的过程都记录一下。因为我也不知道是因为仅仅修改了加密方式还是修改了数据库和加密方式才能正常登录的。
shelldocker exec -it harbor-db /bin/bash
shellpsql -U postgres -d postgres -h 127.0.0.1 -p 5432
shell\c registry
shellselect * from harbor_user;
sqlupdate harbor_user set password='a71a7d0df981a61cbb53a97ed8d78f3e',salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr',password_version='sha1' where username='admin';
#退出
/q
exit
就可以正常登录了,不知道为什么,反正是可以用了。