Docker私有仓库与Harbor

目录

一、本地私有仓库

1. 下载registry镜像

2. 在daemon.json文件中添加私有镜像仓库地址

3. 运行registry容器 

4. Docker容器的重启策略如下

5. 为镜像打标签

6. 上传到私有仓库 

7. 列出私有仓库的所有镜像 

8. 列出私有仓库的centos镜像有哪些tag 

9. 先删除原有的centos镜像,再测试私有仓库下载

二、Harbor

1. Harbor简介

2. Harbor的特性

3. Harbor的构成


一、本地私有仓库

1. 下载registry镜像

[root@docker ~]# docker pull registry
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       7         eeb6ee3f44bd   4 weeks ago   204MB
registry     latest    b2cb11db9d3d   6 weeks ago   26.2MB

2. 在daemon.json文件中添加私有镜像仓库地址

[root@docker ~]# vim /etc/docker/daemon.json 

{
  "registry-mirrors": ["https://3c7tpzyf.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.122.10:5000"]
}

[root@docker ~]# systemctl restart docker.service 

3. 运行registry容器 

[root@docker ~]# docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latestea1409afd42194b23d2633e244f87a4a0beb97aac989fc0b49ef773a3fbcb546
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                                       NAMES
ea1409afd421   registry:latest   "/entrypoint.sh /etc…"   5 seconds ago   Up 4 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   registry

-itd:在容器中打开一个伪终端进行交互操作,并在后台运行
-v:把宿主机的/data/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化
-p:映射端口,访问宿主机的5000端口就访问到registry容器的服务了
--restart=always:这是重启的策略,在容器退出时总是重启容器
--name registry:创建容器命名为registry
registry:latest:这个是刚才pull下来的镜像

4. Docker容器的重启策略如下

no:默认策略。在容器退出时不重启容器
no-failure:在容器非正常退出时(退出状态非0),才会重启容器
no-failure:3:在容器非正常退出时重启容器,最多重启3次
always:在容器退出时总是重启容器
unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

5. 为镜像打标签

[root@docker ~]# docker tag centos:7 192.168.122.10:5000/centos:test1
[root@docker ~]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
192.168.122.10:5000/centos   test1     eeb6ee3f44bd   4 weeks ago   204MB
centos                       7         eeb6ee3f44bd   4 weeks ago   204MB
registry                     latest    b2cb11db9d3d   6 weeks ago   26.2MB

6. 上传到私有仓库 

[root@docker ~]# docker push 192.168.122.10:5000/centos:test1 
The push refers to repository [192.168.122.10:5000/centos]
174f56854903: Pushed 
test1: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529

7. 列出私有仓库的所有镜像 

[root@docker ~]# curl http://192.168.122.10:5000/v2/_catalog
{"repositories":["centos"]}

8. 列出私有仓库的centos镜像有哪些tag 

[root@docker ~]# curl http://192.168.122.10:5000/v2/centos/tags/list
{"name":"centos","tags":["test1"]}

9. 先删除原有的centos镜像,再测试私有仓库下载

[root@docker ~]# docker rmi -f 192.168.122.10:5000/centos:test1 centos:7 
Untagged: 192.168.122.10:5000/centos:test1
Untagged: 192.168.122.10:5000/centos@sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
Untagged: centos:7
Untagged: centos@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Deleted: sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9
Deleted: sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
registry     latest    b2cb11db9d3d   6 weeks ago   26.2MB
[root@docker ~]# docker pull 192.168.122.10:5000/centos:test1
test1: Pulling from centos
2d473b07cdd5: Pull complete 
Digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
Status: Downloaded newer image for 192.168.122.10:5000/centos:test1
192.168.122.10:5000/centos:test1
[root@docker ~]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
192.168.122.10:5000/centos   test1     eeb6ee3f44bd   4 weeks ago   204MB
registry                     latest    b2cb11db9d3d   6 weeks ago   26.2MB

二、Harbor

1. Harbor简介

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。
Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署。用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml。

2. Harbor的特性

(1)基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。
(2)基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。
(3)支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。
(4)镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。
(5)图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。
(6)审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
(7)支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
(8)Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

3. Harbor的构成

Harbor 在架构上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services 六个组件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值