如何构建本地Docker镜像仓库

 更新时间:2025年06月27日 15:40:32   作者:weixin_44585288  
这篇文章主要介绍了如何构建本地Docker镜像仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

概要

构建一个带有用户界面(UI)的本地Docker镜像仓库,你可以使用一些现成的工具,如Harbor、Sonatype Nexus或JFrog Artifactory。这些工具提供了一个完整的解决方案,包括用户界面、认证、访问控制、镜像管理等特性。

以下是使用Harbor作为示例来构建带有UI的本地Docker镜像仓库的步骤:

安装Harbor

下载Harbor

访问Harbor的官方GitHub页面(https://github.com/goharbor/harbor),下载适合你操作系统的安装包。下面使用wget下载v2.3.3版本

wget https://github.com/goharbor/harbor/releases/download/<version>/harbor-offline-installer-<version>.tgz

解压Harbor

解压下载的Harbor安装包。

tar -zxvf harbor-offline-installer-<version>.tgz
cd harbor

配置Harbor

修改配置文件名字。

mv harbor.yml.tmpl harbor.yml

harbor目录下,vim编辑harbor.yml配置文件,配置你的仓库的端口、数据库、存储等信息。 https认证全部注释掉。

......
hostname: <宿主机IP>
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
   port: 80
#https:
# https port for harbor, default is 443
#  port: 443
# The path of cert and key files for nginx
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path  
......   

安装Harbor

使用提供的安装脚本安装Harbor。

sudo sh install.sh

启动Harbor

安装完成后,Harbor会自动启动。

手动启停

 #切换到harbor目录
 cd harbor
 #停止harbor容器
 docker-compose down -v 
 # 启动harbor容器
 docker-compose up -d

登录Harbor UI

  • 你可以通过访问http://<your-ip>来查看Harbor的Web UI。
  • 使用默认的管理员账户(用户名:admin,密码:Harbor12345)登录Harbor的Web UI。

在这里插入图片描述

配置 Docker 信任地址

因为Habor采用的是 HTTP 协议,默认不被 Docker 信任,需要进行配置。编辑 Docker 守护进程配置文件 /etc/docker/daemon.json 增加"insecure-registries": ["http://<宿主机IP>:80"], 如下所示:

{
  "registry-mirrors": [
      "https://registry.cn-beijing.aliyuncs.com",
      "https://docker.mirrors.ustc.edu.cn/"
  ],
  "insecure-registries": ["http://<宿主机IP>:80"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "data-root": "/data/docker",
  "storage-driver": "overlay2"
}

其它参数解释参考Docker和Docker-Compose安装

重载 Docker 守护进程配置并重启 Docker

systemctl daemon-reload
systemctl restart docker

Docker客户端登录Harbor

配置Docker客户端以使用你的Harbor仓库作为默认仓库。

docker login <your-ip>:80

根据提示输入用户名:admin 和 密码: Harbor12345

推送镜像到Harbor

使用下面的命令将你的Docker镜像推送到Harbor。

docker tag your-image <your-ip>:80/<项目名>/your-image
docker push <your-ip>:80/<项目名>/your-image

示例

docker pull busybox
docker tag busybox 192.168.44.161:80/test/busybox:first
docker push 192.168.44.161:80/test/busybox:first

Harbor会根据<your-ip>:80/<项目名>来锁定推送的仓库地址。默认推送的仓库地址是docker.io

从Harbor拉取镜像

拉取镜像

docker pull <your-ip>:80/<<项目名>/your-image>

管理仓库

通过Harbor的Web UI,你可以管理仓库、用户、项目等。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1)

    本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1)

    这篇文章主要介绍了本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 从docker镜像里提取dockerfile的两种方法

    从docker镜像里提取dockerfile的两种方法

    Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本,下面这篇文章主要给大家介绍了关于如何从docker镜像里提取dockerfile的两种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Docker部署Spring-boot项目的示例代码

    Docker部署Spring-boot项目的示例代码

    这篇文章主要介绍了Docker部署Spring-boot的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • jenkins+gitlab+nginx部署前端应用实现

    jenkins+gitlab+nginx部署前端应用实现

    在日常开发中,往往可能同时多个项目并行进行开发,本文介绍了jenkins+gitlab+nginx部署前端应用实现,感兴趣的可以了解一下
    2021-05-05
  • docker Get https://registry-1.docker.io/v2/: net/http: request canceled 报错

    docker Get https://registry-1.docker.io/v2/: 

    本文主要介绍了docker Get https://registry-1.docker.io/v2/: net/http: request canceled 报错,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • Docker部署Prometheus的实现示例

    Docker部署Prometheus的实现示例

    Prometheus是一款开源的监控和告警工具,它可以收集系统的各种指标数据,如CPU使用率、内存使用量等,本文主要介绍了Docker部署Prometheus的实现示例,感兴趣的可以了解一下
    2024-08-08
  • Docker实现Mariadb分库分表及读写分离功能

    Docker实现Mariadb分库分表及读写分离功能

    这篇文章主要给大家介绍了关于Docker实现Mariadb分库分表及读写分离功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Docker内网穿透frp部署实现过程解析

    Docker内网穿透frp部署实现过程解析

    这篇文章主要介绍了Docker内网穿透frp部署实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 修改Docker镜像仓库为阿里云镜像或163镜像的实现

    修改Docker镜像仓库为阿里云镜像或163镜像的实现

    docker本身的仓库非常慢,但是国内有阿里云的镜像仓库非常快,本文主要介绍了修改Docker镜像仓库为阿里云镜像或163镜像的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Docker容器迁移到其他服务器的5种方法详解

    Docker容器迁移到其他服务器的5种方法详解

    这篇文章主要介绍了Docker容器迁移到其他服务器的5种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论