您的位置:首页 > 运维架构 > Docker

Docker私有仓库管理之Harbor搭建

2017-04-20 18:52 1091 查看
Harbor简介:http://dockone.io/article/1179

Harbor官网安装说明:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

环境说明:

Centos 7.2

主机IP: 192.168.20.17

一、安装相关依赖

1、安装docker

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?


2、安装docker-compose

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


3、安装golang

到官网下载最新的相应系统安装包: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

harbor官方网址: https://github.com/vmware/harbor

1、下载harbor源码

wget https://github.com/vmware/harbor/archive/master.zip

2、解压

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


3、修改配置文件

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 = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
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 = example@example.com


此处我们只修改
hostname=192.168.20.17
(私有仓库主机ip)

4、更新生成相关配置文件

./prepare

5、 更新
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镜像的版本不同外,其他镜像的版本应该一致(用同一版本)

6、运行

必须在
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
命令相关参数选项可查看官网

三、上传和下载镜像

1、上传镜像到私有仓库

哪台主机需要上传镜像到刚搭建的私有仓库,就需要更改docker进程启动的相关参数

A、修改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镜像下载加速,如何设置镜像加速

B、重启docker进程

重启进程前应先停掉所有在运行的容器

systemctl restart docker

C、修改docker镜像tag标签

格式为: 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


D、登陆并push

$ docker login 192.168.20.17:80
$ docker push 192.168.20.17/test/busybox:latest


上传完后在harbor web界面的test项目下则可以看到刚上传的镜像了

2、从私有仓库下载镜像

在需要下载镜像的机器上,同样需要修改docker进程参数(跟上传镜像到私有仓库一样操作进行修改)

docker pull 192.168.20.17/test/busybox:latest
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Harbor Docker 私有仓库