声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
环境准备
我是在虚拟机中部署的harbor,比较方便。虚拟机一键化,可以看之前的vagrant文章。
-
ubuntu22 -
harbor
https://github.com/goharbor/harbor
环境搭建
安装docker
root 权限下
删除docker的所有包
apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
删除相关插件
apt-get autoremove docker-ce-*
查看docker是否卸载干净
dpkg -l | grep dockerdpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
删除docker配置目录
rm -rf /etc/systemd/system/docker.service.drm -rf /var/lib/docker
安装docker安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release#添加 Docker 官方 GPG keycurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg#添加 apt 源:#Docker官方源echo"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudotee /etc/apt/sources.list.d/docker.list > /dev/null#更新源sudo apt updatesudo apt-get update#安装最新版本的Dockersudo apt install docker-ce docker-ce-cli containerd.io#查看Docker版本sudo docker version#查看Docker运行状态sudo systemctl status docker
安装harbor
解压
mkdir /opt/dockertar zxvf harbor-offline-installer-v2.12.2.tgz -C /opt/docker/
配置 Harbor
cd /opt/docker/harbor/# 创建 harbor.yml 文件cp harbor.yml.tmpl harbor.yml# 修改 harbor.yml 文件,只修改部分内容,将部分内容注释vim harbor.yml
修改内容
vim harbor.yml# 修改 hostname 的值,如果没有域名就使用本机IP地址hostname:192.168.56.31# 配置启动端口号http: port:30000# 如果没有申请证书,需要隐藏 https# 启动成功后,admin 用户登录密码harbor_admin_password: Harbor12345# 指定数据存储路径data_volume:/opt/data
如果外网可访问,一定要修改成只有自己知道的强密码。
启动 Harbor
./install.sh
访问 http://192.168.56.31:30000/
私有仓库使用
在我们需要docker下载镜像的系统上,配置docker
修改 docker 配置文件
## 切换目录# cd /etc/docker/## 备份文件# cp daemon.json daemon.json.old# vim /etc/docker/daemon.json##### content #####{"insecure-registries" : ["192.168.56.31:30000"],"allow-nondistributable-artifacts": ["192.168.56.31:30000"]}##### / ###### systemctl restart docker## 注意:在这里遇到一个问题,重启 docker 服务后,部分 harbor 起不来,可以使用 ./install.sh 来解决
登录 Harbor
docker login -u admin -p Harbor12345 http://192.168.52.55:30000
配置仓库
http://192.168.56.31:30000/harbor/registries
DockerHub
如果无法直接连接,可能要配置代理编辑 harbor.yaml 配置文件,找到 proxy
proxy: http_proxy: http://192.168.xx https_proxy: http://192.168.xx no_proxy: localhost,core.harbor.domain,127.0.0.1 components:#需要使用代理的组件 - core - jobservice - trivy
然后重新读取配置并重启
docker compose down -vvim harbor.yml./preparedocker compose up -d
注意,如果是有多人使用,就不要点公开了
测试
将Harbor仓库地址添加为Docker信任列表
# 编辑 /etc/docker 下的daemon.json文件{"registry-mirrors": ["http://192.168.56.31:30000/"],"insecure-registries":["192.168.56.31:30000"]}# 然后重启Dockersystemctl restart docker
拉取镜像
docker pull 192.168.56.31:30000/dockerhub/mysql:latest
可以看到dockerhub当中,存在mysql的缓存信息,后续就可以直接从harbor上拉取。
harbor开机自启动
vim /usr/lib/systemd/system/harbor.service
配置
[Unit]Description=HarborAfter=docker.service systemd-networkd.service systemd-resolved.serviceRequires=docker.serviceDocumentation=http://github.com/vmware/harbor[Service]Type=simpleRestart=on-failureRestartSec=5ExecStart=/usr/bin/docker-compose -f /opt/docker/harbor/docker-compose.yml upExecStop=/usr/bin/docker-compose -f /opt/docker/harbor/docker-compose.yml down[Install]WantedBy=multi-user.target
sudo systemctl enable harborsudo systemctl status harbor
参考资料
-
ubuntu下完全卸载重装docker教程 https://www.cnblogs.com/Johnyzh/p/17901181.html -
Ubuntu 22.04下Docker安装 https://blog.csdn.net/u011278722/article/details/137673353 - https://mp.weixin.qq.com/s/Zxlz4-GrdE9BJfVOuN1TBg
-
Docker 容器设置自启动 https://blog.csdn.net/Hu_wen/article/details/110521804 -
Harbor使用DockerHub进行代理缓存 https://juejin.cn/post/7309158089374187571 -
harbor 仓库配置外网代理 https://blog.csdn.net/weixin_59526725/article/details/139770864 -
docker版harbor开机自启 https://cloud.tencent.com/developer/article/2159179 -
VirtualBox复制虚拟机 https://blog.csdn.net/luo15242208310/article/details/121581827 -
怎么在virtualbox中设置虚拟机的mac地址 https://jingyan.baidu.com/article/54b6b9c026cb5d6c583b47c7.html
原文始发于微信公众号(进击的HACK):搭建私有镜像仓库 harbor
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论