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、登录系统
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]
问题:需要指定使用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
创建项目、创建用户已经对项目授权不在赘述,比较简单