搭建本地Harbor镜像仓库

一个属于自己的镜像仓库

Posted by Derrick on October 29, 2020

1.1 安装Docker

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
$ yum -y install docker-ce-18.06.1.ce-3.el7
$ systemctl enable docker && systemctl start docker
$ docker --version
Docker version 18.06.1-ce, build e68fc7a

配置Docker加速器

# cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

1.2 安装docker-componse

$ curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version
docker-compose version 1.24.1, build 1110ad01

1.3 安装harbor

$ wget -c https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2-rc1.tgz
$ tar zxvf harbor-offline-installer-v1.8.2-rc1.tgz
$ cd harbor

配置harbor.yml

$ vim harbor.yml
hostname: #IP地址或域名
http:
	port: 80
https:
	port: 443
	certificate: xxx
	private_key: xxx
harbor_admin_password: xxxxx #  Web端admin用户密码
database:
	password: xxxx
data_volumn: /data

安装harbor

$ ./install.sh

1.4 访问harbor登录界面

avatar

1.5 harbor使用

Harbor启停:
    方式一:
        关闭harbor服务:docker-compose down -v
        修改配置文件:vim harbor.yml
        重新生成配置文件:./prepare或者或者bash prepare
        启动Harbor服务:docker-compose up -d
    方式二:
        修改配置文件:vim harbor.yml
        重新生成配置文件:./prepare或者或者bash prepare
        重启harbor:docker-compose down -v && docker-compose up -d

    注意:如果更改了harbor.yml文件,必须要重新执行install脚本,或者执行./prepare脚本,生成新的配置文件;
          

常用debug方式:
    docker info查看docker程序的配置信息
    docker-compose ps:查看harbor相关的容器信息
        
    
Harbor测试:
    登录仓库:docker login 127.0.0.1
        用户:test01 / ******; admin/Harbor12345
    镜像推送:docker push 192.168.1.8/library/IMAGE[:TAG]
    Docker Registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。为了解决这个问题需要在启动docke时增加启动参数为默认使用http访问。这个是在客户机的docker配置文件里添加的(即上传镜像到私有仓库里或从私有仓库下载镜像的客户机)。


[root@docker ~]# sed -i '/ExecStart/s/$/ --insecure-registry 192.168.1.8/' /usr/lib/systemd/system/docker.service 
[root@docker ~]# systemctl daemon-reload && systemctl enable docker && systemctl start docker