Docker镜像篇(8) - 镜像仓库 - Harbor

Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库【注:helm就相当于k8s的yum】。另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫描工具,它通过各大厂商提供的CVE漏洞库来获取最新漏洞信息,并扫描用户上传的容器是否存在已知的漏洞信息,这两个安全功能对于企业级私有仓库来说是非常具有意义的。

# 如果没有安装docker,运行本行代码
安装并启动docker
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
设置稳定存储库
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker CE
[root@localhost ~]# yum install -y docker-ce docker-ce-cli containerd.io
安装Docker-compose
[root@localhost ~]# curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
对二进制文件赋可执行权限
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
测试docker-compose是否安装成功
[root@localhost ~]# docker-compose --version
docker-compose version 1.13.0, build 1719ceb

下载Harbod安装包【如果github下载慢,安装包网盘有】
[root@localhost ~]# mkdir -p /harbor
[root@localhost ~]# cd /harbor/
[root@localhost harbor]# yum -y install wget
[root@localhost harbor]# wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz
[root@localhost harbor]# ls
harbor-online-installer-v1.1.2.tgz
[root@localhost harbor]# tar -zxf harbor-online-installer-v1.1.2.tgz 


配置Harbor
[root@localhost harbor]# ls
harbor  harbor-online-installer-v1.1.2.tgz
[root@localhost harbor]# cd harbor
[root@localhost harbor]# ls
common  docker-compose.notary.yml  docker-compose.yml  harbor_1_1_0_template  harbor.cfg  install.sh  LICENSE  NOTICE  prepare  upgrade
[root@localhost harbor]# vim harbor.cfg
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = 192.168.66.13

# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = 123456

max_job_workers = 3 

customize_crt = on

ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

secretkey_path = /data

admiral_url = NA
# 邮件设置,发送重置密码邮件时使用
email_identity = 

email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false

# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = 123456

# 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth

# LDAP认证时配置项
ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
ldap_uid = uid
ldap_scope = 3
ldap_timeout = 5

# 是否开启自注册
self_registration = on

# token有效时间,默认30分钟
token_expiration = 30

# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone

verify_remote_cert = on


启动Harbor
[root@localhost harbor]# ./install.sh 

Harbor依赖的镜像及启动服务如下
[root@localhost harbor]# docker-compose ps
       Name                     Command               State                                Ports                               
------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/harbor_adminserver       Up                                                                       
harbor-db            docker-entrypoint.sh mysqld      Up      306/tcp                                                         
harbor-jobservice    /harbor/harbor_jobservice        Up                                                                       
harbor-log           /bin/sh -c crond && rm -f  ...   Up      127.0.0.1:1514->514/tcp                                          
harbor-ui            /harbor/harbor_ui                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    


启动完成后,访问刚设置的hostname即可,默认是80端口,如果端口占用,可以去修改docker-compose.yml文件中,对应服务的端口映射



登录Harbor仓库

http://192.168.66.13/harbor/sign-in

在这里插入图片描述

在这里插入图片描述

新建项目slowlove

使用docker login登录
[root@localhost harbor]# docker login 192.168.66.13
Username: admin
Password: 
Error response from daemon: Get https://192.168.66.3/v2/: dial tcp 192.168.66.3:443: connect: connection refused

出现问题,查找docker.service
[root@localhost ~]# find / -name docker.service -type f
/usr/lib/systemd/system/docker.service

修改配置文件,添加“ --insecure-registry 192.168.66.13 ”
[root@localhost harbor]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.66.13 -H fd:// --containerd=/run/containerd/containerd.sock

重启docker服务
[root@localhost harbor]# systemctl daemon-reload
[root@localhost harbor]# systemctl restart docker
[root@localhost harbor]# systemctl status docker

重启harbor仓库
[root@localhost harbor]# ./install.sh 

下载一个镜像
[root@localhost harbor]# docker pull busybox

查看镜像
[root@localhost harbor]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
busybox                     latest              018c9d7b792b        4 weeks ago         1.22MB

修改镜像名字
[root@docker harbor]# docker tag busybox 192.168.66.13/slowlove/busybox:v0.1

查看镜像
[root@docker harbor]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
192.168.66.13/slowlove/busybox                       v0.1                f0b02e9d092d        4 weeks ago         1.23MB
busybox                                              latest              f0b02e9d092d        4 weeks ago         1.23MB

登录harbor仓库
[root@docker harbor]# docker login 192.168.66.13
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

上传镜像
[root@docker harbor]# docker push 192.168.66.13/slowlove/busybox:v0.1
The push refers to repository [192.168.66.13/slowlove/busybox]
d2421964bad1: Pushed 
v0.1: digest: sha256:c9249fdf56138f0d929e2080ae98ee9cb2946f71498fc1484288e6a935b5e5bc size: 527

删除镜像
[root@docker harbor]# docker rmi 192.168.66.13/slowlove/busybox:v0.1
Untagged: 192.168.66.13/slowlove/busybox:v0.1
Untagged: 192.168.66.13/slowlove/busybox@sha256:c9249fdf56138f0d929e2080ae98ee9cb2946f71498fc1484288e6a935b5e5bc

查看镜像
[root@docker harbor]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
busybox                                              latest              f0b02e9d092d        4 weeks ago         1.23MB

下载harbor的镜像
[root@docker harbor]# docker pull 192.168.66.13/slowlove/busybox:v0.1
v0.1: Pulling from slowlove/busybox
Digest: sha256:c9249fdf56138f0d929e2080ae98ee9cb2946f71498fc1484288e6a935b5e5bc
Status: Downloaded newer image for 192.168.66.13/slowlove/busybox:v0.1
192.168.66.13/slowlove/busybox:v0.1

查看镜像
[root@docker harbor]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
192.168.66.13/slowlove/busybox                       v0.1                f0b02e9d092d        4 weeks ago         1.23MB
busybox                                              latest              f0b02e9d092d        4 weeks ago         1.23MB

查看页面

在这里插入图片描述

Docker镜像篇(7) - 镜像仓库 - 阿里云
Docker镜像篇(9) - 镜像原理

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Harbor是一个开源的企业级容器镜像仓库,它可以帮助用户管理和分发Docker镜像。通过搭建Docker Harbor仓库,用户可以自己创建和维护私有的镜像仓库,并使用https认证方式进行安全访问。 要搭建Docker Harbor仓库,首先需要下载和安装Docker Compose工具。可以使用以下命令下载和安装Docker Compose: ``` curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` 接着,可以使用以下命令检查Docker Compose是否安装成功: ``` docker-compose -v ``` 下载Docker Compose后,需要维护和管理Harbor仓库。首先,需要下载registry镜像并创建本地私有仓库。可以使用以下命令下载registry镜像: ``` docker pull registry ``` 接着,在daemon.json文件中添加私有镜像仓库地址。可以使用以下命令编辑daemon.json文件: ``` vim /etc/docker/daemon.json ``` 并在文件中添加如下内容: ``` { "registry-mirrors": ["https://3c7tpzyf.mirror.aliyuncs.com"], "insecure-registries": ["192.168.122.10:5000"] } ``` 然后,重启Docker服务以使更改生效: ``` systemctl restart docker.service ``` 最后,使用以下命令运行registry容器来启动私有仓库: ``` docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest ``` 以上就是搭建Docker Harbor仓库的过程。通过这个仓库,您可以方便地管理和分发Docker镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker-harbor2.4.2-https私有仓库-有验证和web](https://download.csdn.net/download/qq_34953582/87952076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Docker私有仓库Harbor](https://blog.csdn.net/weixin_48861962/article/details/121726836)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值