标签:nexus 登录 war oca ide enc str ase 多个
镜像的管理分为手工分发和docker-hub或者Registry仓库两种方式
使用docker save
和docker load
可以在没有Registry的情况下实现image的线下分发和迁移
[root@localhost ~]# docker save ubuntu:latest -o ubuntu:tatest.tar
[root@localhost ~]# docker save ubuntu:latest | gzip > ubuntu:tatest.tgz
[root@localhost ~]# ls -lh
-rw-------. 1 root root 73M Aug 2 12:58 ubuntu:tatest.tar
-rw-r--r--. 1 root root 27M Aug 2 12:59 ubuntu:tatest.tgz
[root@localhost ~]# docker save redis:4.0.14_man | gzip > redis:4.0.14_man.tgz
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu update 3c7832c9920b 3 hours ago 96.4MB
ubuntu latest 1e4467b07108 9 days ago 73.9MB
httpd latest 9d2a0c6e5b57 10 days ago 166MB
nginx latest 8cf1bfb43ff5 11 days ago 132MB
centos latest 831691599b88 6 weeks ago 215MB
hello-world latest bf756fb1ae65 7 months ago 13.3kB
[root@localhost ~]# docker load -i redis:4.0.14_man.tgz
4014348e492a: Loading layer [==================================================>] 173.8MB/173.8MB
f3aafaca0eb9: Loading layer [==================================================>] 7.69MB/7.69MB
d0549792a5c2: Loading layer [==================================================>] 103.1MB/103.1MB
bc8ef3880d58: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: redis:4.0.14_man
Registry用于保存 Docker 镜像,包括镜像的层次结构和元数据,利用它可以方便的实现镜像的下载、上传与修改。一般来说仓库有Docker Hub主仓库、公有云Registry,私有云Registry。
Docker Hub是默认的Docker Registry。 Docker Hub 允许任何人在线托管自己的镜像。
另外可以在/etc/docker/daemon.json
中加入更多的其他的国内Registry镜像,一般公有云的Registry都是可以支持匿名Pull出镜像的。
docker-registry历经2代,registry1是python语言写的,而现在registry2版本即docker-distribution更加安全和快速,并且是用go语言写的,docker1.6及其以上版本已经不再支持老的Registry。
两种方式安装和部署Registry,第一种是用传统的yum方式,安装后通过systemctl来管理仓库服务。
[root@localhost ~]# yum info docker-distribution
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.huaweicloud.com
Available Packages
Name : docker-distribution
Arch : x86_64
Version : 2.6.2
Release : 2.git48294d9.el7
Size : 3.5 M
Repo : extras/7/x86_64
Summary : Docker toolset to pack, ship, store, and deliver content
URL : https://github.com/docker/distribution
License : ASL 2.0
Description : Docker toolset to pack, ship, store, and deliver content
[root@localhost ~]# yum install -y docker-distribution
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.huaweicloud.com
Resolving Dependencies
--> Running transaction check
---> Package docker-distribution.x86_64 0:2.6.2-2.git48294d9.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================================
Installing:
docker-distribution x86_64 2.6.2-2.git48294d9.el7 extras 3.5 M
Transaction Summary
====================================================================================================================================================
Install 1 Package
Total download size: 3.5 M
Installed size: 12 M
Downloading packages:
docker-distribution-2.6.2-2.git48294d9.el7.x86_64.rpm | 3.5 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : docker-distribution-2.6.2-2.git48294d9.el7.x86_64 1/1
Verifying : docker-distribution-2.6.2-2.git48294d9.el7.x86_64 1/1
Installed:
docker-distribution.x86_64 0:2.6.2-2.git48294d9.el7
Complete!
[root@localhost ~]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
cbdbe7a5bc2a: Pull complete
47112e65547d: Pull complete
46bcb632e506: Pull complete
c1cc712bcecd: Pull complete
3db6272dcbfa: Pull complete
Digest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551d
Status: Downloaded newer image for registry:latest
常见的几种docker registry企业级实现,包括官方的registry、Harbor,Quay Enterprise以及 Nexus等。
相对于企业级Registry镜像仓库,简易的Registry没有考虑的因素有:
缺少UI用户界面
缺少角色的权限控制、用户管理、权限管控、行为审计等安全功能
无法和企业的统一登录或者LDAP对接
缺少对镜像的漏洞扫描等安全防护
缺少对镜像文件生命周期维护功能
缺少镜像其它镜像仓库的能力
缺少高效的镜像文件分发能力,如,使用BT协议进行分发
缺少镜像仓库的运行时监控
缺少企业级的服务支持,如, bug fix、安全漏洞补丁的通知、产品升级等
不适合大规模容器集群的使用,特别是跨地域的在多个数据中心进行镜像的同步
Harbor是VMware公司开源的企业级云原生Registry项目, 由中国研发团队开源,包含在vmware tanzu产品中,用来存储、签名并扫描存储工件,能够提供诸如用户管理,访问控制,活动审计,和节点间的复制等一系列高级功能,可以让你迅速的搭建自己的私有镜像仓库。Harbor只能通过docker的方式进行部署,但是Harbor的开源版本并没有与Kubernetes进行深度集成;不能运行在K8S平台上。
Quay.io是第一个使用私有存储库的托管镜像仓库。CoreOS于2014年收购了Quay,以推出首个企业级的镜像仓库。2018年CoreOS被Red Hat收购之后,Red Hat也将Quay Enterprise产品开源并持续提供企业级的支持服务。
Quay Enterprise 也是最早支持 OCI 规范的企业级镜像仓库,与 Kubernetes 集成为 Operator 提供良好的支持,并提供以下的特性:
异地复制
高可用性和可扩展性
安全扫描
自动构建触发器
时间机器image回滚(基于build版本的回退)
细粒度的访问控制
详细的日志和审计
自动连续垃圾收集,无需停机
与多个存储后端集成 (如 ceph 等)
支持多种身份提供商:LDAP,OAuth,OpenStack Keystone等。
加密的CLI密码
洪流分布
容器和应用程序注册
与Quay.io保持一致的UI和代码库
在企业中Nexus最初是给 Java用的,大家把一些工具包放入Nexus中,后来慢慢发展,可以作为众多软件pipy、yum的仓库,最新版本 Nexus3.x
全面支持 Docker 的私有镜像。所以使用 Nexus3.x
一个软件来统一管理 Docker
, Maven
, Yum
, PyPI
也是一个明智的选择。Nexus支持传统和容器两种方式部署。
它们之间的各方面对比如下表所示:
对比项 | Harbor | Quay | Nexus |
---|---|---|---|
语言 | Golang | Python | Java |
部署方式 | docker容器 | docker容器 | docker容器+传统方式 |
用户管理 | 支持 DB、LDAP 和 OIDC | 支持 LDAP、Keystone、OIDC、Google 和 GitHub | 支持与外部LDAP/AD |
机器人账号 | 支持 | 支持 | 支持 |
权限管理 | 支持 | 支持 | 支持 |
图形用户界面 | 支持 | 支持 | 支持 |
使用文档 | 非常全面 | 较少 | 待定 |
镜像安全扫描 | 支持 | 支持 | 可集成Clair |
镜像可信 | 支持 | 支持 | 待定 |
镜像清理 | 支持 | 支持 | 支持 |
审计日志 | 支持 | 支持 | 待定 |
Helm 管理 | 支持 | 支持 | 支持 |
多仓库管理 | 支持 | 不支持 | 支持多种不同类型仓库管理 |
镜像同步 | 支持 | 不支持 | 支持Proxy代理到另一个镜像库 |
代码仓库集成 | 不支持 | 支持 | 支持 |
镜像构建 | 不支持 | 支持 | 不支持 |
镜像下载 | 不支持 | 支持 | 支持 |
通知 | 支持 Webhook | 支持站内信、Webhook、Email、Slack 等 | 支持 |
标签:nexus 登录 war oca ide enc str ase 多个
原文地址:https://www.cnblogs.com/elfcafe/p/13532267.html