博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker镜像仓库Harbor
阅读量:5966 次
发布时间:2019-06-19

本文共 5579 字,大约阅读时间需要 18 分钟。

hot3.png

企业级私有镜像仓库 Harbor简介:Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。Harbor 是由 VMware 中国研发团队负责开发的开源企业级 Docker Registry, 不仅解决了我们直接使用 Docker Registry 的功能缺失, 更解决了我们在生产使用 Docker Registry 面临的高可用、镜像仓库直接复制、镜像仓库性能等运维痛点。

1 安装Docker

cd /etc/yum.repos.dwget https://download.docker.com/linux/centos/docker-ce.repoyum install docker-ce -ysystemctl start dockersystemctl enable docker

2 安装 docker-compose

curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose version

3 下载 Harbor 安装包

离线地址wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz在线地址wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz

解压:(使用离线包)

tar xf harbor-offline-installer-v1.7.4.tgz

4 自签证书

cd harbormkdir ssl  && cd ssl #存放证书使用openssl req -x509 -new -nodes -sha512 -days 3650 \    -subj "/C=CN/ST=PK/L=PK/O=example/OU=Personal/CN=fuck1899.com" \    -key ca.key \    -out ca.crtopenssl genrsa -out fuck1899.com.key 4096openssl req -sha512 -new \   -subj "/C=CN/ST=PK/L=PK/O=example/OU=Personal/CN=fuck1899.com" \   -key fuck1899.com.key \   -out fuck1899.com.csr cat > v3.ext <<-EOFauthorityKeyIdentifier=keyid,issuerbasicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentextendedKeyUsage = serverAuth subjectAltName = @alt_names[alt_names]DNS.1=fuck1899.comDNS.2=fuck1899.comDNS.3=hellozzEOFopenssl x509 -req -sha512 -days 3650 \   -extfile v3.ext \   -CA ca.crt -CAkey ca.key -CAcreateserial \   -in fuck1899.com.csr \   -out fuck1899.com.crtopenssl x509 -inform PEM -in fuck1899.com.crt -out fuck1899.com.cert修改配置文件vim harbor.cfg修改一下行hostname = fuck1899.comui_url_protocol = httpsssl_cert = ./ssl/fuck1899.com.crtssl_cert_key = ./ssl/fuck1899.com.key主意:如果不需要做自签证的证书只需要修改一下两个配置customize_crt = offhostname = fuck1899.com保存退出将证书文件拷贝到docker目录下使我们可以通过命令行提交镜像不受自签证书认证影响mkdir /etc/docker/certs.d/fuck1899.com -pcp harbor/ssl/fuck1899.com.cert /etc/docker/certs.d/fuck1899.com/cp harbor/ssl/fuck1899.com.key /etc/docker/certs.d/fuck1899.com/cp harbor/ssl/ca.crt /etc/docker/certs.d/fuck1899.com/如果是其他主机命令行提交或者登陆到这个harbor服务器,那么也需要将这个证书文件拷贝到自己主机/etc/docker/certs.d/fuck1899.com下 没有这个目录可以手动创建是配置生效./prepare

5 安装

./install.sh
[Step 3]: checking existing instance of Harbor ...Creating registry ... doneCreating harbor-core ... done[Step 4]: starting Harbor ...Creating harbor-portal ... doneCreating nginx ... doneCreating redis ... Creating harbor-adminserver ... Creating harbor-db ... Creating registryctl ... Creating registry ... Creating harbor-core ... Creating harbor-portal ... Creating harbor-jobservice ... Creating nginx ... ✔ ----Harbor has been installed and started successfully.----Now you should be able to visit the admin portal at https://fuck1899.com. For more details, please visit https://github.com/goharbor/harbor .

说明已经安装成功

通过docker-compose查看都运行了一些什么镜像

docker-compose ps       Name                     Command               State                       Ports                    -----------------------------------------------------------------------------------------------------------harbor-adminserver   /harbor/start.sh                 Up                                                   harbor-core          /harbor/start.sh                 Up                                                   harbor-db            /entrypoint.sh postgres          Up      5432/tcp                                     harbor-jobservice    /harbor/start.sh                 Up                                                   harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp                    harbor-portal        nginx -g daemon off;             Up      80/tcp                                       nginx                nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp,                                                              0.0.0.0:80->80/tcp                           redis                docker-entrypoint.sh redis ...   Up      6379/tcp                                     registry             /entrypoint.sh /etc/regist ...   Up      5000/tcp                                     registryctl          /harbor/start.sh                 Up

6 浏览器访问测试

访问签需要添加本机 host 文件,因为这个域名是不真实的

linux 添加hosts 文件

47.244.163.105  fuck1899.com

windows添加 hosts 文件

C:\Windows\System32\drivers\etc

编辑hosts 添加:

服务器IP   fuck1899.com

0159f97fab6f931348b638b599b0aa7b1e3.jpg

但是显示是不安全的

 查看证书是否有我们颁发

94a938fbab2a0ecba6f2a423dc166901ccf.jpg

上图显示证书有我们颁发

 官方解释

请注意,即使我们通过自签名CA签署证书并将CA部署到上述位置,某些浏览器仍可能出于安全原因显示有关证书颁发机构(CA)未知的警告。这是因为自签名CA本质上不是受信任的第三方CA. 您可以自己将CA导入浏览器以解决警告。

7 登陆

默认密码为admin  Harbor12345如果你没有修改过的话

linux 端登陆使用

docker login yourdomain.com

windows直接打开地址

5d678623f1cade97c49c657ebdd0995cbb2.jpg

8 创建项目等

创建项目      1  公开      2 不公开创建用户用户关联项目      1 添加成员      2 角色授权

9 harbor 上传下载镜像

第一步登陆  输入用户名和密码

docker login fuck1899.com面交互方式登陆:docker login -u用户名 -p密码 镜像服务器

第二步 给镜像打tag

docker tag oddrationale/docker-shadowsocks fuck1899.com/sundezhao/ss:v1#oddrationale/docker-shadowsocks 需要大tag的镜像  #fuck1899.com  harbor服务器#sundezhao     项目名称#ss:v1         tag

第三步 push镜像

docker push fuck1899.com/sundezhao/ss:v1

第四步 查看已经push的镜像

37e40f7e2552390e2ca27784df2a44b52ea.jpg

第五步 pull 镜像

docker pull fuck1899.com/sundezhao/ss:v1

结束语:

至此Harbor已经搭建完成并可以使用,对于企业来说私有仓库是必须有的,快来测试一下把!

转载于:https://my.oschina.net/54188zz/blog/3019588

你可能感兴趣的文章
记住这两点,彻底终结原型链吧
查看>>
vue .prop修饰符
查看>>
ES6 Promise - 让我们解开的面纱(遵循Promise/A+规范)
查看>>
[菜鸟SpringCloud实战入门]第九章:服务网关Zuul体验
查看>>
MySql中的事务
查看>>
[译] 如何学习 CSS
查看>>
JAVA并发编程之多线程并发同步业务场景与解决方案
查看>>
JS 作用域
查看>>
Android高级开发-布局渲染流程与优化
查看>>
基于JQuery做的一个简单的点击显示和隐藏的小Demo
查看>>
微信小程序开发遇到的bug及填坑
查看>>
基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
查看>>
vue写的页面title中ico图标不显示的问题
查看>>
OC_类与对象
查看>>
谈谈CountDownLatch和CyclicBarrier
查看>>
Android之控件与布局,结构知识点,基础完结
查看>>
java B2B2C Springboot多租户电子商城系统-Spring Cloud Stream(消息驱动)
查看>>
CentOS7 0安装jdk + tomcat
查看>>
前端小秘密系列之闭包
查看>>
rocketmq学习杂记
查看>>