Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建

文章目录

  • 一、什么是Harbor
  • 二、搭建私有仓库
    • 1.安装docker-ce
    • 2.安装软件库包
    • 3.创建认证
  • 三、在另一台==已安装docker==的主机上
  • 四、搭建Harbor
  • 测试

docker hub虽然方便,但是还是有限制:
• 需要internet连接,速度慢
• 所有人都可以访问
• 由于安全原因企业不允许将镜像放到外网
• 好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库

一、什么是Harbor

Harbor是一个开源的注册表,它通过策略和基于角色的访问控制来保护工件,确保图像被扫描,没有漏洞,并签署图像为可信。Harbor是CNCF的一个毕业项目,提供合规性、性能和互操作性,帮助你在Kubernetes和Docker等云原生计算平台上一致、安全地管理工件。
Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第1张图片

二、搭建私有仓库

1.安装docker-ce

详情见此文:Linux企业应用——Docker(一)之初步了解Docker以及Docker的安装

2.安装软件库包

yum install -y  openssl11-1.1.1k-2.el7.x86_64.rpm openssl11-libs-1.1.1k-2.el7.x86_64.rpm

3.创建认证

其中xuan.cn,DNS中的registry.xuan.cn替换为自己想要的地址

mkdir -p certs
openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/xuan.cn.key -addext "subjectAltName = DNS:registry.xuan.cn" -x509 -days 365 -out certs/xuan.cn.crt

其中Common Name (eg, your name or your server's hostname) []:registry.xuan.cn务必要和上方DNS解析中保持一致


[root@k8s2 ~]# openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/xuan.cn.key -addext "subjectAltName = DNS:registry.xuan.cn" -x509 -days 365 -out certs/xuan.cn.crt
Can't load /root/.rnd into RNG
140061807077184:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto/rand/randfile.c:98:Filename=/root/.rnd
Generating a RSA private key
.....................................................................................................++++
.............................................++++
writing new private key to 'certs/xuan.cn.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:shaanxi
Locality Name (eg, city) [Default City]:xi'an
Organization Name (eg, company) [Default Company Ltd]:xuanlucky
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:registry.xuan.cn
Email Address []:sss@123

添加解析

vim /etc/hosts
主机ip	域名
172.27.84.9 registry.xuan.cn

重建registry容器


[root@k8s2 ~]# docker run -d -v /opt/registry:/var/lib/registry -v /root/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/xuan.cn.crt -e REGISTRY_HTTP_TLS_KEY=/certs/xuan.cn.key -p 443:443 registry
f3b05c84b90e5f3a6e38bf90f2dc6028ea4139e0c5814aa45f0a86ca488cc282

4.创建目录,拷贝认证文件

mkdir -p /etc/docker/certs.d/registry.xuan.cn
cp /root/certs/xuan.cn.crt /etc/docker/certs.d/registry.xuan.cn/ca.crt

5.上传镜像

docker tag nginx:latest registry.xuan.cn/nginx:v1
docker push registry.xuan.cn/nginx:v1

三、在另一台已安装docker的主机上

1.添加解析

vim /etc/hosts
主机ip	域名
172.27.84.9 registry.xuan.cn

2.添加镜像私有仓库

vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.xuan.cn"]
}

Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第2张图片3.重启docker,并查看

systemctl restart docker
docker info

Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第3张图片
4.创建目录,拷贝认证文件

mkdir -p /etc/docker/certs.d/registry.xuan.cn
scp 172.27.84.9:certs/xuan.cn.crt /etc/docker/certs.d/registry.xuan.cn/ca.crt

5.测试:
从仓库拉取镜像

docker pull registry.xuan.cn/nginx:v1

Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第4张图片

四、搭建Harbor

软件下载: https://github.com/goharbor/harbor/releases
依赖性: docker 17.06.0-ce+ and docker-compose 1.18.0+
为了方便起见
将xuan.cn.crt,xuan.cn.key移动至/data目录

mv /root/certs/* /data/certs

1.解压离线安装包

tar zxf harbor-offline-installer-v2.5.0.tgz

2.编辑harbor配置文件

cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: registry.xuan.cn
http:
   port: 80
https:
  port: 443
  certificate: /data/certs/xuan.cn.crt
  private_key: /data/certs/xuan.cn.key
harbor_admin_password: xuanlucky
database:
    password: xuanlucky

Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第5张图片3.docker-compose安装
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

mv docker-compose-linux-x86_64-v2.5.0 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

4.执行安装

 ./install.sh

Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第6张图片Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第7张图片

测试

浏览器访问搭建的主机的ip地址,登录harbor
Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第8张图片Linux企业应用——Docker(四)之史上最简单,一篇学会Docker私有仓库Harbor的搭建_第9张图片

你可能感兴趣的:(Linux企业运维,docker,容器,运维,harbor)