部署docker本地私有镜像仓库

本文详细介绍如何安装和配置私有Docker镜像仓库Harbor,包括使用docker-compose进行部署及HTTP配置。此外,还介绍了如何利用Harbor来部署GitLab代码仓库。

方案1:搭建docker本地私有镜像仓库registry


docker命令行启动私有仓库容器

参考: https://juejin.cn/post/7173180582518587406

# 拉取仓库容器
docker pull registry

# 创建仓库数据目录
mkdir -p /data/registry

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


docker-compose启动私有仓库容器

# ~/docker-registry/docker-compose.yml

services:
  # registry镜像仓库可视化服务
  registry-ui:
    image: joxit/docker-registry-ui:main
    container_name: registry-ui
    ports:
      - "8280:80"
    environment:
      SINGLE_REGISTRY: "true" # 设置为单仓库模式(仅连接一个Registry仓库)
      REGISTRY_TITLE: "Docker Registry UI" # 设置UI界面标题
      DELETE_IMAGES: "true" # 启用镜像删除功能(允许通过UI删除镜像)
      SHOW_CONTENT_DIGEST: "true" # 显示镜像内容摘要(Digest)
      NGINX_PROXY_PASS_URL: "http://registry:5000" # 指定后端Registry服务的URL
      SHOW_CATALOG_NB_TAGS: "true" # 在仓库目录中显示标签数量
      CATALOG_MIN_BRANCHES: "1" # 目录列表最小分支数(控制UI显示范围)
      CATALOG_MAX_BRANCHES: "1" # 目录列表最大分支数(控制UI显示范围)
      TAGLIST_PAGE_SIZE: "100" # 设置标签列表每页显示数量
      REGISTRY_SECURED: "false" # 禁用Registry安全认证(不启用HTTPs连接)
      CATALOG_ELEMENTS_LIMIT: "1000" # 限制目录页显示元素数量(性能优化)
    # 定义服务依赖
    depends_on:
      - registry # 依赖 registry 服务

  # 定义registry 服务
  registry:
    image: registry:latest
    container_name: registry
    ports:
      - "5000:5000"
    environment:
      # 启用删除功能
      REGISTRY_STORAGE_DELETE_ENABLED: "true"
      # 镜像的存储路径
      REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
    volumes:
      - registry_data:/data
    # 开机自启动
    restart: always
volumes:
  registry_data:
    external: false # 数据卷为内部创建

启动registry容器

# 启动容器
docker-compose up -d

方案2:搭建企业级私有镜像仓库Harbor


Harbor介绍

项目地址: https://github.com/goharbor/harbor/releases

Harbor是企业级私有仓库.
在这里插入图片描述


安装Harbor

在这里插入图片描述
在这里插入图片描述


部署Harbor HTTP

默认的账号是: admin
默认密码是: Harbor12345
在这里插入图片描述


配置Harbor

在这里插入图片描述


docker客户端使用私有镜像仓库

在这里插入图片描述


1. docker客户端配置私有仓库可信任

修改docker镜像配置文件/etc/docker/daemon.json,添加私有仓库(可配置多个)

vim /etc/docker/daemon.json
在这里插入图片描述

{
  "insecure-registry": [
    "192.168.189.133:5000"
  ],
  "experimental": true
}

修改完后重启docker

# 重启docker服务
systemctl restart docker

2. 打标签

# 修改标签
docker tag amd64_alpine:3.20.3 192.168.189.133:5000/amd64_alpine:3.20.3


3. push推送打过标签的镜像

# 推送到仓库
docker push 


查看当前仓库中的镜像
# 查看仓库中的镜像
curl http://192.168.44.20:5000/v2/_catalog


4. 查看私钥仓库中提供的镜像版本

# 安装skopeo
dnf install -y skopeo jq

# 查询私有镜像仓库提供的镜像版本
skopeo list-tags docker://docker.1ms.run/library/nginx 

# 以json格式输出
skopeo list-tags docker://docker.1ms.run/library/nginx |jq

在这里插入图片描述


curl查看该镜像标签列表
# 查看该镜像标签列表
# curl http://<私有仓库ip>:5000/版本/镜像名称/tags/list
curl http://192.168.44.20:5000/v2/${镜像名称}/tags/list


浏览器直接查看


结果验证


删除镜像,后面进行拉取镜像测试

从私有仓库拉取镜像


其他主机拉取该镜像

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

您的赞赏,是我深夜码字时最亮的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值