Docker 私有仓库与 Harbor 部署使用

本文详细介绍了如何部署Docker私有仓库,包括下载registry镜像,配置私有仓库地址,运行及管理容器,以及镜像的标签、上传和删除。此外,还深入探讨了Harbor的特性,如RBAC、镜像复制、AD/LDAP集成和审计日志,并详细阐述了Harbor的组件和部署过程,包括配置文件参数解析、日志收集和数据库服务。文章还涵盖了Harbor的维护管理,如创建项目、用户管理、配置文件修改以及服务迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、部署私有仓库

1. 下载 registry 镜像

[root@c7-1 ~]#docker pull registry
......
[root@c7-1 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    f652ca386ed1   4 days ago     141MB
registry     latest    b8604a3fe854   3 weeks ago    26.2MB
centos       7         eeb6ee3f44bd   2 months ago   204MB

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

[root@c7-1 ~]#cat /etc/docker/daemon.json
{
   
   
"insecure-registries": ["192.168.10.20:5000"],    #添加此段,本机IP地址
"registry-mirrors": ["https://4iv7219l.mirror.aliyuncs.com"]
}

[root@c7-1 ~]#systemctl restart docker.service 

3. 运行 registry 容器

[root@c7-1 ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    ea335eea17ab   2 weeks ago    141MB
registry     latest    b8604a3fe854   2 weeks ago    26.2MB
centos       7         eeb6ee3f44bd   2 months ago   204MB
[root@c7-1 ~]#docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
465355484f317cf31c4df4d2d90edf078bc6063cca7bd175b80c3abdb83a03ca
[root@c7-1 ~]#docker ps -a
CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                                       NAMES
465355484f31   registry:latest   "/entrypoint.sh /etc…"   9 seconds ago   Up 8 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   registry
[root@c7-1 ~]#docker exec -it 465355484f31 /bin/sh
/ # ls
bin            etc            media          proc           sbin           tmp
dev            home           mnt            root           srv            usr
entrypoint.sh  lib            opt            run            sys            var
-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@c7-1 ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    ea335eea17ab   2 weeks ago    141MB
registry     latest    b8604a3fe854   2 weeks ago    26.2MB
centos       7         eeb6ee3f44bd   2 months ago   204MB
[root@c7-1 ~]#docker tag centos:7 192.168.10.20:5000/centos:test1
[root@c7-1 ~]#docker images
REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
nginx                       latest    ea335eea17ab   2 weeks ago    141MB
registry                    latest    b8604a3fe854   2 weeks ago    26.2MB
centos                      7         eeb6ee3f44bd   2 months ago   204MB
192.168.10.20:5000/centos   test1     eeb6ee3f44bd   2 months ago   204MB

6. 上传到私有仓库

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

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

[root@c7-1 ~]#curl -XGET http://192.168.10.20:5000/v2/_catalog
{
   
   "repositories":["centos"]}

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

root@c7-1 ~]#curl -XGET http://192.168.10.20:5000/v2/centos/tags/list
{
   
   "name":"centos","tags":["test1"]}

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

[root@c7-1 ~]#docker images
REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
nginx                       latest    ea335eea17ab   2 weeks ago    141MB
registry                    latest    b8604a3fe854   2 weeks ago    26.2MB
192.168.10.20:5000/centos   test1     eeb6ee3f44bd   2 months ago   204MB
centos                      7         eeb6ee3f44bd   2 months ago   204MB
[root@c7-1 ~]#docker rmi -f 192.168.10.20:5000/centos:test1 centos:7 &> /dev/null
[root@c7-1 ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    ea335eea17ab   2 weeks ago   141MB
registry     latest    b8604a3fe854   2 weeks ago   26.2MB
[root@c7-1 ~]#docker pull 192.168.10.20:5000/centos:test1 &> /dev/null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值