Harbor简介:http://dockone.io/article/1179
Harbor官网安装说明:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md
环境说明:
yum -y install docker
启动docker
systemctl restart docker
查看docker版本
$ docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-common-1.12.6-11.el7.centos.x86_64
Go version: go1.7.4
Git commit: 96d83a5/1.12.6
Built: Tue Mar 7 09:23:34 2017
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
pip安装
pip install docker-compose
源码安装
wget https://github.com/docker/compose/archive/master.zip
unzip master.zip
cd compose-master
python setup.py install
查看docker-compose版本
$ docker-compose version
docker-compose version 1.13.0dev, build unknown
docker-py version: 2.2.1
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
到官网下载最新的相应系统安装包:https://golang.org/dl/
wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
tar -C /usr/local/ -zxf go1.8.1.linux-amd64.tar.gz
把以下内容添加到环境变量 vi ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin
使其生效
source ~/.bash_profile
查看go版本
$ go version
go version go1.8.1 linux/amd64
harbor官方网址: https://github.com/vmware/harbor
wget https://github.com/vmware/harbor/archive/master.zip
unzip master.zip
cd /harbor-master/make
查看依赖是否安装
$ ./checkenv.sh
Note: golang version: 1.8.1
Note: docker version: 1.12.6
Note: docker-compose version: 1.12.0
vi harbor.cfg
配置文件参数说明(转自:http://www.cnblogs.com/jicki/p/5737369.html)
## Configuration file of Harbor
# hostname 设置访问地址,支持IP,域名,主机名,禁止设置127.0.0.1
hostname = reg.mydomain.com
# 访问协议,可设置 http,https
ui_url_protocol = http
# 邮件通知, 配置邮件通知。
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin
email_ssl = false
# harbor WEB UI登陆使用的密码
harbor_admin_password = Harbor12345
# 认证方式,这里支持多种认证方式,默认是 db_auth ,既mysql数据库存储认证。
# 这里还支持 ldap 以及 本地文件存储方式。
auth_mode = db_auth
# ldap 服务器访问地址。
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = uid=%s,ou=people,dc=mydomain,dc=com
# mysql root 账户的 密码
db_password = root123
self_registration = on
use_compressed_js = on
max_job_workers = 3
verify_remote_cert = on
customize_crt = on
# 一些显示的设置.
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = [email protected]
此处我们只修改hostname=192.168.20.17
(私有仓库主机ip)
./prepare
docker-compose.yml
cp docker-compose.tpl docker-compose.yml
在docker hub查找docker-compose.yml
配置文件中所有镜像的官方最新版本号,并将其替换掉__version__
yml配置文件中我们只改相应镜像对应版本号
image: vmware/harbor-log:v1.1.0
image: vmware/registry:photon-2.6.0
image: vmware/harbor-db:v1.1.0
image: vmware/harbor-adminserver:v1.1.0
image: vmware/harbor-ui:v1.1.0
image: vmware/harbor-jobservice:v1.1.0
image: vmware/nginx:1.11.5-patched
注:此处除了nginx和registry镜像的版本不同外,其他镜像的版本应该一致(用同一版本)
必须在docker-compose.yml
目录下运行
docker-compose up -d
此时我们可以在浏览器中输入:http://192.168.20.17:80
进入harbor web管理后台(80是docker-compose.yml 配置文件中nginx容器的默认端口),默认的帐号密码是admin
, Harbor12345
(如果你没有修改harbor.cfg
中的harbor_admin_password
)
查看compose状态
docker-compose ps
没意外的话,应该全部状态都是UP
需要修改web访问端口的话,先在harbor.cfg
中hostname=192.168.20.17:5000
,再把docker-compose.yml
中的80端口改为5000,如下(只贴修改部分)
proxy:
image: vmware/nginx:1.11.5-patched
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
- 5000:80
- 443:443
- 4443:4443
更多关于docker-compose
命令相关参数选项可查看官网
哪台主机需要上传镜像到刚搭建的私有仓库,就需要更改docker进程启动的相关参数
OPTIONS
新增--insecure-registry 192.168.20.17
vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=https://olzwzeg2.mirror.aliyuncs.com --insecure-registry 192.168.20.17'
注:--registry-mirror=https://olzwzeg2.mirror.aliyuncs.com
是用于docker镜像下载加速,如何设置镜像加速
重启进程前应先停掉所有在运行的容器
systemctl restart docker
格式为: userip/项目名/image名字:版本号(项目名为harbor中的项目名)
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest 00f017a8c2a6 5 weeks ago 1.11 MB
$ docker tag docker.io/busybox:latest 192.168.20.17/test/busybox:latest
$ docker login 192.168.20.17:80
$ docker push 192.168.20.17/test/busybox:latest
上传完后在harbor web界面的test项目下则可以看到刚上传的镜像了
在需要下载镜像的机器上,同样需要修改docker进程参数(跟上传镜像到私有仓库一样操作进行修改)
docker pull 192.168.20.17/test/busybox:latest