私有镜像仓库的部署与使用方法
01.说明
• 构建前请确保已安装docker环境
• 镜像仓库基于Harbor构建,版本号: v2.2.4
02.Harbor介绍
docker官方虽然提供了公共的镜像仓库,但对于企业来说,这种方式没有安全保障,一旦在构建镜像的过程中进行了commit,就相当于把这些代码实现都交给了别人。因此企业在私有网络环境下部署属于自己的镜像仓库是非常有必要的。
Harbor是由VMware公司开源的镜像管理平台,具有丰富的图形化管理界面、用户管理、镜像管理等功能。可以为构建大规模的docker集群提供仓库服务。
03.安装
• 本文基于离线方式安装,该方式更符合在私有网络环境下部署
• 安装包下载地址:
Releases · goharbor/harbor · GitHub
• 安装过程
1.下载完后先解压安装包
# tar xf harbor-offline-installer-v2.2.4.tgz
2.进入安装目录
# cd harbor
3.重命名配置文件
# mv harbor.yml.tmpl harbor.yml
4.修改配置文件
# vim harbor.yml
将hostname修改成自己主机的IP,注意port不能与别的服务端口冲突。
简单部署也可以直接注释https相关的配置,如有安全相关的考虑则需要增加https证书。
修改完后的配置文件如下:
# 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: reg.mydomain.comhostname: 192.168.0.123
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 31003
# https related config
# 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
5.执行安装脚本
#./install.sh
6.安装完成标识
...(省略安装日志)
✔ ----Harbor has been installed and started successfully.----
7.访问Harbor主页
192.168.0.123:31003
8.默认用户名和密码信息
admin
Harbor12345
04.Harbor的启动和停止
• 先进入到harbor目录下
# cd harbor
• 停止
# docker-compose down
• 启动
# docker-compose up -d
• 设置开机启动
# vim /usr/lib/systemd/system/harbor.service
# 复制以下内容到 harbor.service 然后保存退出
[Unit]
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/local/bin/docker-compose -f /root/digiproto/kubernetes/harbor/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /root/digiproto/kubernetes/harbor/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
# 执行以下命令,设置开机启动
# systemctl enable harbor
# systemctl start harbor
05.推送镜像到Harbor
编辑daemon.json文件,加上insecure-registries的配置
# vim /etc/docker/daemon.json
# 增加Harbor仓库的地址
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
"insecure-registries":["192.168.0.123:31003"]
}
②重启docker
# systemctl daemon-reload
# systemctl restart docker
3.推送前先登录Harbor
# docker login 192.168.0.123:31003
# Username: xxx
# Password: yyy
③给镜像打Tag并推送到Harbor
- 推送前先给镜像打tag:
docker tag SOURCE_IMAGE[:TAG] 192.168.0.123:31003/xxx/REPOSITORY[:TAG]
例如: docker tag app:v2.0 192.168.0.123:31003/xxx/app:v2.0
- 推送镜像到Harbor:
docker push 192.168.0.123:31003/digiproto/REPOSITORY[:TAG]
例如: docker push 192.168.0.123:31003/xxx/app:v2.0
④从Harbor拉取镜像
docker pull 192.168.0.123:31003/xxx/app:v2.0
06.Harbor控制台的基本使用
Harbor控制台的基本使用
• 创建项目
• 项目下的一些主要操作
• 关于镜像的说明