docker私有仓库搭建harbor

1、安装docker-compose

$ yum -y install epel-release

$ yum -y install python-pip

$ pip install docker-compose

$ docker-compose version

如果出现以下错误:

Traceback (most recent call last):

  File "/usr/bin/docker-compose", line 5, in <module>

    from pkg_resources import load_entry_point

  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in <module>

    parse_requirements(__requires__), Environment()

  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 626, in resolve

    raise DistributionNotFound(req)

pkg_resources.DistributionNotFound: backports.ssl-match-hostname>=3.5

解决办法:

$ pip install backports.ssl_match_hostname --upgrade

#再次确认就OK咯!

$ docker-compose version

docker-compose version 1.9.0, build 2585387

docker-py version: 1.10.6

CPython version: 2.7.5

OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013

2、安装harbor

$ wget https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz

$ tar xvf harbor-offline-installer-v1.2.0.tgz

$ cd harbor

#将配置文件harbor.cfg中的hostname修改如下,其它可参照官网修改https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

hostname = 192.168.70.110

#执行安装(此处执行前需要先安装好docker,详细见docker安装步骤)

$ ./install.sh 

......

Creating network "harbor_default" with the default driver

Creating harbor-log

Creating harbor-db

Creating registry

Creating harbor-ui

Creating harbor-jobservice

Creating nginx

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://192.168.70.111. 

For more details, please visit https://github.com/vmware/harbor .

You have new mail in /var/spool/mail/root

#这样就安装完成了

启动方式:

cd  /harbor

docker-compose up -d

docker-compose up -d               ###后台启动,如果容器不存在根据镜像自动创建

docker-compose down   -v         ###停止容器并删除容器

docker-compose start                 ###启动容器,容器不存在就无法启动,不会自动创建镜像

docker-compose stop                 ###停止容器

3、登录系统

http://192.168.70.110

user:admin

passwd:Harbor12345 (默认密码)进入系统后建议立即修改密码)

4、push 和 pull 镜像

crt登录到Harbor

从官网仓库下载一个centos的镜像

docker pull docker.io/centos

centos打一个tag

docker tag docker.io/centos hub.chinadigit.org:5000/library/centos:v1.0

push到harbor中

docker push  hub.chinadigit.org:5000/library/centos:v1.0

报错1:

The push refers to a repository [hub.chinadigit.org:5000/library/centos]

Get https://hub.chinadigit.org:5000/v1/_ping: dial tcp 218.77.43.3:5000: getsockopt: connection refused

问题:需要指定使用http协议连接harbor

如果安装的docker是docker engine(在节点服务器新建文件并指明harbor服务器信息如下):

cat >>/etc/docker/daemon.json<<EOF

{ "insecure-registries":["hub.chinadigit.org:5000"] }

EOF

安装的docker不是docker engine

在/usr/lib/systemd/system/docker.service修改ExecStart一行如下:

ExecStart=/usr/bin/dockerd --insecure-registry hub.chinadigit.org:5000

$systemctl daemon-reload

$ systemctl restart docker.service

重启之后问题解决。

报错2:

docker push镜像时报以下错误

The push refers to a repository [hub.chinadigit.org:5000/library/centos]

cf516324493c: Preparing

unauthorized: authentication required

解决办法:登录仓库私有项目需要先登录再push

$docker login hub.chinadigit.org:5000 -u onlyread -p aaaAAA111 #登录私有仓库使用docker login IP地址

$docker push  hub.chinadigit.org:5000/library/centos:v1.0

退出仓库登录命令如下:

docker logout hub.chinadigit.org:5000

创建项目、创建用户已经对项目授权不在赘述,比较简单

猜你喜欢

转载自blog.csdn.net/xiaohuibin0541/article/details/83688497