Docker私有仓库管理之Harbor搭建

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 = [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)

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.cfghostname=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

你可能感兴趣的:(docker)