
#云原生征文#保姆级docker私有镜像仓库harbor安装部署 原创 精华
docker私有镜像仓库harbor安装部署
一、harbor介绍:
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库, 但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware 公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、 自我注册、镜像复制和中文支持等功能。
二、硬件准备:
- 4C4G100G
- IP地址:192.168.225.152
- 主机名:harbor
- master1节点:192.168.225.138(仓库功能测试)
三、部署docker harbor:
3.1 为harbor自签发证书:
- 创建证书目录:
- 生成ca根证书key和ca根证书:
- 生成为harbor域名颁发证书的key和ca证书颁发请求:
- 生成harbor域名证书:
3.2 安装harbor前提环境准备:
3.3 安装harbor:
- 安装docker-compose
注: docker-compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose的工程配置文件默认为docker-compose.yml,Docker-Compose运行目录下的必要有一个docker-compose.yml。docker-compose可以管理多个docker实例。
- 部署harbor:
- 启动和关闭harbor:
四、修改DNS hosts文件:
五、登录harbor,创建仓库:
六、修改master1 docker daemon.json和hosts配置:
docker客户端如果配置中添加了insecure-registary配置,就不需要在docker 客户端配置上对应证书。如果不配置就需要在/etc/docker/certs.d/目录中添加对应证书才能正常登录。不能同时修改,二选一即可。
目前添加该配置有2种常用方式:
- 修改daemon.json文件:
[root@master1 ~]# cat /etc/docker/daemon.json
{
“registry-mirrors”:[“https://rsbud4vc.mirror.aliyuncs.com”,“https://registry.docker-cn.com”,“https://docker.mirrors.ustc.edu.cn”,“https://dockerhub.azk8s.cn”,“http://hub-mirror.c.163.com”,“http://qtid6917.mirror.aliyuncs.com”, “https://rncxm540.mirror.aliyuncs.com”], “insecure-registries”: [“shibosen.harbor01.com:4444”],
“exec-opts”: [“native.cgroupdriver=systemd”]
}
- 修改docker.service启动文件:
[root@master1 ~]# cat /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service[Service]
Type=notifyExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry shibosen.harbor01.com:4444
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
七、从私有镜像仓库推送(push)拉取(pull)镜像测试:
- 使用docker pull拉去官方nginx镜像包,作为我们后续的功能测试:
- 使用docker tag命令修改镜像名称为对饮仓库路径名称,并登录仓库,推送nginx镜像至test仓库:
- 使用docker login 命令登录harbor仓库:
- 使用docker push命令将本地的nginx镜像推送至harbor中的test仓库中:
- 删除本地nginx镜像,从harbor拉取镜像测试:
本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598
