准备docker环境
(一)docker 版本介绍
随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(CommunityEdition)和 EE(EnterpriseEdition)。
主要区别:Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store 的、经过认证的容器和插件;Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平 台,非常适合开发人员和运维团队构建容器APP。事实上,Docker CE 17.03,可理解为Docker 1.13.1的 Bug修复版本。
详情https://github.com/docker/docker/releases
社区版并非阉割版,而是改了个名称;企业版则提供了一些收费的高级特性。EE版本维护期1年;Docker CE有两种版本edge版本每月发布一次,主要面向那些喜欢尝试新功能的用户。stable版本每季度发布一次,适用于希望更加容易维护的用户(稳定版)。edge版本只能在当前月份获得安全和错误修复。而stable版本在初始发布后四个月内接收关键错误修复和安全问题的修补程序。这样,Docker CE用户就有一个月的窗口期来切换版本到更新的版本。举个例子,Docker CE 17.03会维护到17年07月;而Docker CE 17.03的下个稳定版本是CE 17.06,这样,6-7月这个时间窗口,用户就可以用来切换版本了。
(二)docker安装
安装环境CentOS Linux release 7.3.1611 (Core) 最小化安装即可使用国内软件源提高效率。
#curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
配置主机名
下载docker rpm包
# yum install ./docker-ce-17.06.0.ce-1.el7.centos.x86_64.rpm
# docker –version
Docker version 17.06.0-ce, build 02c1d87
(三) 安装docker-compose
Compose是用于定义和运行复杂Docker应用的工具。你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成
#yum install python-pip
#pip install -U pip
#pip install -U docker-compose
#docker-compose –version
docker-compose version 1.14.0, build c7bdf9e
二, 部署harbor
(一)harbor项目介绍
Harbor是由VMware中国研发团队负责开发的开源企业级Registry,可帮助用户迅速搭建企业级的registry 服务。
详细介绍请参考http://www.tuicool.com/articles/fe6naqu
(二)部署harbor
Harbor被部署为几个Docker容器,因此可以部署在任何支持Docker的Linux发行版上。目标主机需要安装Python,Docker和DockerCompose。
- Python应该是2.7或更高版本。
- Docker引擎应为1.10或更高版本。
- Docker Compose需要为1.6.0或更高版本。
安装步骤如下
1. 下载安装程序;
从https://github.com/vmware/harbor/releases下载在线或离线安装版本这里下载离线版本
#wget -c https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz #tar xf harbor-offline-installer-v1.1.2.tgz
2. 配置harbot.cfg
#cd harbor
#vim harbor.cfg
harbor.cfg中的配置项分为必选参数和可选参数,必选参数需要在配置文件中设置若修改 需要重新安装才能生效。可选参数可以在安装完成后通过WEBUI更新。
必选参数
- hostname:目标主机的主机名,用于访问UI和注册表服务。它应该是目标机器的IP地址或完全限定域名(FQDN)。
- ui_url_protocol:(http或https。默认为http)用于访问UI和令牌/通知服务的协议。如果启用了公证,则此参数必须为https。(不用如果必须使用https)。
- db_password:用于db_auth的MySQL数据库的根密码。
- max_job_workers:(默认值为3)最大进程数。
- customize_crt:(on或off。默认为on)当此属性打开时,prepare脚本将为注册表令牌的生成或 验证创建私钥和根证书。当密钥和根证书由外部源提供时,将此属性设置为off。
- ssl_cert:SSL证书的路径,仅当协议设置为https时才应用。
- ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用。
- secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径。
可选参数
可选参数和其他配置如存储配置详见
https://github.com/vmware/harbor/blob/master/docs/installation_guide.md
创建自己的CA证书
# openssl req -newkeyrsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
生成证书签名文件
#openssl req -newkeyrsa:4096 -nodes -sha256 -keyout jdm.click.key -out jdm.click.csr
生成registry主机使用的证书
#openssl x509 -req -days 365 -in jdm.click.csr -CA ca.crt -CAkeyca.key -CAcreateserial -out jdm.click.crt
参考连接:https://github.com/vmware/harbor/blob/master/docs/configure_https.md
本次安装中只对如下参数进行修改
# cat harbor.cfg |grep -Ev "^#|^$"
hostname = registry.jdm.click
ui_url_protocol = https
db_password = root123
max_job_workers = 2
customize_crt = on
ssl_cert = /root/cert/jdm.click.crt
ssl_cert_key = /root/cert/jdm.click.key
secretkey_path = /data
harbor_admin_password = Harbor12345 (admin账号的初始密码)
生成docker-compose.yml
#./prepar
3. 运行install.sh 并启动harbor;
#sh install.sh
# cd /root/harbor/
启动harbor
# docker-compose
启动后可用过docker ps命令查看启动的容器
通过浏览器访问https://registry.jdm.click 使用初始密码登录
创建一个名为“lokolla”的项目
下载kolla镜像包
#wget –c http://tarballs.openstack.org/kolla/p_w_picpaths/centos-binary-registry-ocata.tar.gz
将压缩包解压到/data 目录
# tar xf centos-binary-registry-ocata.tar.gz -C /data/
为什么要解压到data目录请看docker-compose.yml 文件中registry部分
因此可以判断/data/registroy目录就是存放镜像的目录
为什么要新建一个lokolla项目见下图中层级目录
拷贝完成后可能需要重启一下harbor方法如下
#cd /root/harbor (docker-compose.yml文件所在目录)
# docker-compose restart
4. docker client端配置
在客户端创建如下目录
#mkdir –p /etc/docker/certs.d/registroy.jdm.click
并从registry上将证书文件拷贝过来
登录测试(确保registry主机地址可以被解析)
转载于:https://blog.51cto.com/bf109/1944088