docker搭建harbor私有镜像库

创建harbor私有镜像库

一、部署准备:

harbor软件包

在部署节点上:

1)解压harbor的软件包将harbor目录下所有文件发送到/opt/目录下

tar zxvf harbor-offline-installer-v1.4.0.tgz

[[email protected] kubernetes]# cd harbor
[[email protected] harbor]# ls
common                    docker-compose.notary.yml  ha          harbor.v1.4.0.tar.gz  LI
docker-compose.clair.yml  docker-compose.yml         harbor.cfg  install.sh         

 [email protected] kubernetes]# mv harbor /opt/
 [[email protected] kubernetes]# cd /opt/
 [[email protected] opt]# ls
 harbor

二、在根目录下创建 /data目录

  在/data目录下创建/harbor目录

[[email protected] /]# mkdir data
[[email protected] data]# mkdir harbor

然后cd到kubernetes目录下解压ca.tar.gz,将解压后的ca目录移动到创建的/data/harbor/目录并重命名为cert

[[email protected] harbor]# cd /root/kubernetes
[[email protected] kubernetes]# ls
bash  ca.tar.gz  harbor-offline-installer-v1.4.0.tgz  image  image.tar.gz  k8s197.tar.gz
[[email protected] kubernetes]# tar zxf ca.tar.gz
[[email protected] kubernetes]# ls
bash  ca  ca.tar.gz  harbor-offline-installer-v1.4.0.tgz  image  image.tar.gz  k8s197.tar
[[email protected] kubernetes]# mv ca /data/harbor/cert
[[email protected] kubernetes]# cd /data/harbor/cert/
[[email protected] cert]# ls
ca.crt  ca.key  ca.srl  harbor.crt  harbor.csr  harbor.key

三、cd到/opt/harbor/目录下修改配置文件:

1)找到volumes模块,将映射的目录改为/data/harbor/clair-db

[[email protected] harbor]# cat docker-compose.clair.yml

volumes:
- /data/harbor/clair-db:/var/lib/postgresql/data:z

2)再找到volumes模块,将映射目录改为- /data/harbor/notary-db

[[email protected] harbor]# cat docker-compose.notary.yml

volumes:
- /data/harbor/notary-db:/var/lib/mysql:z

3)然后找到docker-compose.yml配置文件中需要修改映射目录的地方(一共6处)

[[email protected] harbor]# cat docker-compose.yml

    volumes:
      - /data/harbor/var/log/harbor/:/var/log/docker/:z
      - ./common/config/log/:/etc/logrotate.d/:z

    volumes:
      - /data/harbor/registry:/storage:z
      - ./common/config/registry/:/etc/registry/:z

    volumes:
      - /data/harbor/database:/var/lib/mysql:z

    volumes:
      - /data/harbor/config/:/etc/adminserver/config/:z
      - /data/harbor/secretkey:/etc/adminserver/key:z
      - /data/harbor/:/data/:z

    volumes:
  - /data/harbor/secretkey:/etc/ui/key:z
      - /data/harbor/ca_download/:/etc/ui/ca/:z
      - /data/harbor/psc/:/etc/ui/token/:z

    volumes:
      - /data/harbor/job_logs:/var/log/jobs:z
      - ./common/config/jobservice/app.conf:/etc/jobservice/app.conf:z
      - /data/secretkey:/etc/jobservice/key:z
   

4)编辑harbor.cfg文件

找到如下参数,并修为如下配置:

hostname = reg.yunwei.edu

ui_url_protocol = https

ssl_cert = /data/harbor/cert/harbor.crt

ssl_cert_key = /data/harbor/cert/harbor.key

secretkey_path = /data/harbor

harbor_admin_password = admin

以上为ca证书名称,必须与实际文件同名

secretkey_path = /data/harbor 为ca证书目录

三、安装harbor程序:

执行安装脚本,搭建harbor镜像库

(1)cd到 /opt/harbor/目录下,执行

 sh install.sh

成功的话末尾会显示以下几行

? ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at https://reg.yunwei.edu.
For more details, please visit https://github.com/vmware/harbor .

(2)验证harbor是否部署成功:

必须在/opt/harbor/目录下执行

#docker-compose ps

[[email protected] opt]# docker-compose ps
ERROR:
        Can‘t find a suitable configuration file in this directory or any
        parent. Are you in the right directory?              #此报错就是因为没有再/opt/harbor目录下执行

        Supported filenames: docker-compose.yml, docker-compose.yaml

[[email protected] opt]# cd harbor/
[[email protected] harbor]# docker-compose ps
       Name                     Command               State                                Ports
------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up
harbor-db            /usr/local/bin/docker-entr ...   Up      3306/tcp
harbor-jobservice    /harbor/start.sh                 Up
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
harbor-ui            /harbor/start.sh                 Up
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
registry             /entrypoint.sh serve /etc/ ...   Up      5000/tcp                                                        

可以看到所有容器的状态都为启动,即为成功部署了harbor。

四、各节点设置登陆harbor私有镜像仓库:

为各节点分发ca证书,以便各节点都能登陆创建的私有仓库。

   

(1)进入下载了ansible的容器,并在每个节点(包括harbor节点)的/etc/docker/目录下,创建certs.d/reg.yunwei.edu/目录

/ # ansible all -m shell -a ‘mkdir -p /etc/docker/certs.d/reg.yunwei.edu‘
 [WARNING]: Consider using file module with state=directory rather than running
mkdir

192.168.253.9 | SUCCESS | rc=0 >>

192.168.253.10 | SUCCESS | rc=0 >>

192.168.253.11 | SUCCESS | rc=0 >>

192.168.253.14 | SUCCESS | rc=0 >>

可以看到四个节点都创建目录成功。注意此操作是在下载了ansible的容器里面。

当然这是建立在此容器已经能够成功ping通其他节点。

(2)harbor节点上(部署节点),将harbor的ca证书中的ca.crt拷贝到/etc/docker目录下

[[email protected] reg.yunwei.edu]#  cp ca.crt /etc/docker/certs.d/reg.yunwei.edu/

(3)将harbor节点的ca.crt文件,分发给各节点的/etc/docker/certs.d/reg.yunwei.edu/下

scp /etc/docker/certs.d/reg.yunwei.edu/ca.crt node1:/etc/docker/certs.d/reg.yunwei.edu/

scp /etc/docker/certs.d/reg.yunwei.edu/ca.crt node1:/etc/docker/certs.d/reg.yunwei.edu/

scp /etc/docker/certs.d/reg.yunwei.edu/ca.crt node1:/etc/docker/certs.d/reg.yunwei.edu/

(4)在/etc/hosts 解析中添加一行解析到自己私有仓库的地址,(部署节点ip)

192.168.253.9 reg.yunwei.edu

 然后harbor镜像库验证

命令行:各节点登陆镜像库地址后,输入用户名/密码(admin/admin)后出现 Login Succeeded

docker login reg.yunwei.edu

[[email protected] ~]# docker login reg.yunwei.edu
Username: admin
Password:
Login Succeeded

注意需要命令行登陆了镜像库之后,才可以推送或者下载镜像从私有仓库中。

来到web浏览器:输入harbor节点ip/harbor访问

登陆用户名和密码后会有一个默认的library项目,可以选择新建项目。

五、上传镜像到harbor私有镜像仓库:

(1)选择本地镜像nginx

(2)查看镜像上传的格式标准。

按照上述标准重命名

[[email protected] ~]# docker tag nginx reg.yunwei.edu/test/nginx:latest
[[email protected] ~]# docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
reg.yunwei.edu/test/nginx      latest              719cd2e3ed04        9 days ago          109MB
nginx                          latest              719cd2e3ed04        9 days ago          109MB
。。。

将重新打tag之后的镜像上传到镜像库

[[email protected] ~]# docker push reg.yunwei.edu/test/nginx
The push refers to repository [reg.yunwei.edu/test/nginx]
d7acf794921f: Pushed
d9569ca04881: Pushed
cf5b3c6798f7: Pushed
latest: digest: sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe size: 948

成功后刷新网页,可以看到镜像被上传到了选择的test库。

私有镜像库的使用

(1)在节点上下载仓库中的镜像。

 但前提是仓库中有。

[[email protected] ~]# docker pull reg.yunwei.edu/test/nginx:latest
latest: Pulling from test/nginx
Digest: sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe
Status: Downloaded newer image for reg.yunwei.edu/test/nginx:latest

(2)节点配置好了ca证书的ca.crt后,便可执行如下命令下载镜像。在kubernets集群中节点在启动pod时,会自动下载镜像

[[email protected]node1 ~]# docker pull reg.yunwei.edu/test/nginx:latest

值得注意的是不管上传还是下载镜像都需要命令行登陆,不然会报错拒绝连接denied access。

原文地址:https://www.cnblogs.com/zzzynx/p/11058933.html

时间: 2024-10-11 22:42:57

docker搭建harbor私有镜像库的相关文章

Kubernetes 创建harbor私有镜像库

一.部署准备: 1.准备 harbor 软件包 在部署节点上: 2.挂载一个磁盘.专门存储 harbor 镜像和文件 3.进入到 /etc/docker/harbor/目录,修改如下配置 找到如下参数,并修改如下配置: hostname = reg.yunwei.edu ui_url_protocol = https ssl_cert = /data/harbor/cert/harbor.crt ssl_cert_key = /data/harbor/cert/harbor.key secret

用Docker Registry 建立私有镜像库

1 环境 2 步骤 3 FAQ 4 参考 环境 ubuntu-16.04-desktop-amd64.iso 步骤 具体可参考博文,在我的环境实施成功,在此借花献佛了:http://www.cnblogs.com/lienhua34/p/4922130.html FAQ 上面的博文唯一对push失败的解决方案,在我的环境里不生效, 错误提示如下: [email protected]:/etc/default# sudo docker push 192.168.80.130:5000/hello-

利用docker搭建本地私有镜像仓库

主机名 角色 sht-sgmhadoopnn-01 Docker Repository sht-sgmhadoopdn-01 Docker Client 原文地址:https://www.cnblogs.com/ilifeilong/p/11708183.html

在 Docker 搭建 Maven 私有库

在 Docker 搭建 Maven 私有库 小引 If you are developing software without a repository manager you are likely missing a number of opportunities to reduce some pretty obvious inefficiencies. If everyone on your team has to hit public repositories like the Centr

Docker 安装私有镜像库的简单使用

公司的网络实在是太差了, 想着自己搭建一个私有的镜像库进行使用测试使用.... docker pull registry.docker-cn.com/library/registry docker tag xxxx registry docker run -d -p 5000:5000 -v /registry:/var/lib/registry registry 修改docker的参数文件: 1. 修改/etc/sysconfig下的 docker 文件 增加配置信息 OPTIONS='--i

K8s之Pod资源管理及创建Harbor私有镜像仓库(含镜像拉取操作,中途含排错)

pod是k8s管理的最小单元 pod中有多个容器,现实生产环境中只有一个容器 特点: 1.最小部署单元2.一组容器的集合3.一个Pod中的容器共享网络命令空间4.Pod是短暂的 Pod容器分类: 1:infrastructure container 基础容器(透明的过程,用户无感知) 维护整个Pod网络空间 node节点操作 `查看容器的网络` [[email protected] ~]# cat /opt/kubernetes/cfg/kubelet KUBELET_OPTS="--logto

可能是最详细的部署:Docker Registry企业级私有镜像仓库Harbor管理WEB UI

上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库,但是Docker Registry 作为镜像仓库,连管理界面都没有,甚至连一些运维必备的功能都是缺失的,还有什么 Docker 镜像仓库管理工具呢?这里有一个简单好用的企业级 Registry 服务器 - Harbor,推荐在生产环境上使用. Harbor 简介 Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker registry服务. 它以Docker公司

Harbor本地镜像库安装与使用

Harbor安装很简单,不过安装以后要怎么操作,百度了好久都没有找到实操的方法,怎么从官方拉取镜像后更新到私有仓库中?这个弄了好久,一样样测试后才找到方法,对于不熟悉私有仓库的小白来说,有点坑.还好花了些时间解决了. 1. Harbor简介 Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过char

Docker学习笔记六:Docker搭建企业级私有仓库

前言 Docker不仅是一个强大的服务器部署工具,而且它还有一个官方的Docker Hub registry用于储存Docker镜像.上传镜像到Docker Hub是免费的,上传的镜像文件同时也对公共领域开放,而这可能不是我们想要的. 本文介绍如何配置一个私有的Docker registry,在此上传的镜像是私密的,你可以从另一个联网的主机以安全的方式下载此registry上的镜像. 本文仅介绍registry的创建,而不讨论应用的容器化.有关Docker镜像创建的操作可参考这篇Docker入门