docker私有镜像仓库 Harbor 搭建
- 背景说明
- 使用环境
- 安装部署
- docker安装
- docker-compose安装
- 安装 Harbor
- Harbor UI管理
- docker 登录
- docker推送镜像和拉取镜像
- docker推送镜像
- docker 拉取镜像
背景说明
为了方便管理docker容器镜像,通常使用各大云平台提供的镜像服务,缺点就是收费。因此很多企业单位都会自行搭建私有的容器镜像管理。
这里使用docker docker-compose 来搭建Harbor镜像管理。
使用环境
Docker: 20.10.12
Docker-compose: 1.29.2
Harbor: 2.4.1
安装部署
docker安装
#卸载podman软件(可以使用rpm -qa|grep docker)
yum remove docker
#下载docker-ce源(国外可使用阿里源)
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 直接使用阿里deocker-ce源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 指定docker版本 20.10.12 这里安装k8s 1.23.6
yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io docker-compose-plugin
# 重启docker
systemctl restart docker
docker-compose安装
注意docker和docker-compose有版本对应,需要自行查验
#从国外服务器下载并安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
国外下载比较慢,亲们都懂的,所以推荐国内源
#从国内服务器https://get.daocloud.io下载并安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
# 查询安装版本
docker-compose --version
安装 Harbor
官网给出了两种安装模式,在线安装包或离线安装包。其区别是离线安装包里面含有镜像,在线版本在安装时则去Docker Hub拉取镜像。我们这里使用离线安装包。
# 下载离线包
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
# 解压
tar zxvf harbor-offline-installer-v2.4.1.tgz
cd harbor
这存在问题 使用wget 下载很慢,可以使用迅雷下载,下载完成后上传主机即可。
在 harbor 文件夹里可以看到有一份文件 harbor.yml.tmpl,这是 Harbor 的配置信息,我们复制一份并进行修改(以下仅显示修改部分):
# 复制生成配置文件
cp harbor.yml.tmpl harbor.yml
# 修改配置
vi harbor.yml
这里只使用http 80端口即可,使用https 443需要签发证书,自行签发证书是不授信的,需要配置docker文件,如是k8s集群,各个节点存在增减,维护起来相对困难,直接使用http 80即可。
配置文件只需要修改的项
# Configuration file of Harbor# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 47.14.7.36 # 本机IP# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80 # hhtp80端口# https related config
#https: #不启用https 使用https需要配置证书而且证书必须授信否则docker无法登录和拉取镜像
# https port for harbor, default is 443
#port: 8443 #443端口修改
# The path of cert and key files for nginx
#certificate: /usr/local/harbor/data/cert/harbor.yunzaixian.top.crt #后续生产的正书
#private_key: /usr/local/harbor/data/cert/harbor.yunzaixian.top.key #后续生产的正书# # Uncomment following will enable tls communication between all harbor components
# internal_tls:
# # set enabled to true means internal tls is enabled
# enabled: true
# # put your cert and key files on dir
# dir: /etc/harbor/tls/internaldata_volume: /usr/local/harbor/data/images # 文件保存目录
location: /usr/local/harbor/data/logs # 日志保存目录
配置完成后执行构建启动
./install.sh --with-chartmuseum
Harbor UI管理
直接访问安装主机地址,端口号80
http://IP:80
或者使用域名解析到当前主机
如:http://harbor.yunzaixian.top
使用默认账号/密码登录
admin/Harbor12345
docker 登录
docker 上传镜像和拉取镜像都需要登录到 harbor中
# 登录 harbor
docker login -u admin -p Harbor12345 http://harbor.yunzaixian.top
docker推送镜像和拉取镜像
docker推送镜像
首先docker需要将镜像打tag
docker tag 镜像名:TAG harbor地址/项目/镜像名:TAG
其次执行推送
docker push harbor地址/项目/镜像名:TAG
如:
docker tag my-toos:1.001 harbor.yunzaixian.top/my-toos/my-toos:1.001
docker push harbor.yunzaixian.top/my-toos/my-toos:1.001
docker 拉取镜像
docker推送完镜像后点击项目
进入镜像详细
拉取镜像命令复制
docker pull 19.19.10.34/application-monitor/application-monitor@sha256:62125e99c07e7a7798b2244ca7cdd458edce31b9397b3765aaa5f89b3d22bd7b
最后docker启动镜像到容器即可