搭建Docker私有仓库管理本地的Docker镜像,通过harbor实现Web UI访问和管理私有仓库

要在本地搭建一个Docker私有仓库,你可以按照以下步骤进行设置:

  1. 安装Docker
    确保你已经安装了Docker。如果还没有安装,可以按照官方指南进行安装:
  • 对于Ubuntu系统,你可以运行以下命令来安装Docker:

    sudo apt-get update
    sudo apt-get install -y docker.io
    

如果无法下载,可参考前一篇文章
解决国内docker镜像无法访问下载,使用清华源docker ce
2. 启动Docker服务
确保Docker服务已经启动:

sudo systemctl start docker
sudo systemctl enable docker
  1. 拉取官方的Docker Registry镜像
    Docker提供了一个官方的registry镜像,可以用来搭建私有仓库。你可以使用以下命令拉取这个镜像:
sudo docker pull registry:2

如果出现连接超时,可以尝试

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 启动私有仓库
    你可以使用以下命令来启动一个简单的私有仓库:
sudo docker run -d -p 5000:5000 --name my-registry registry:2

这个命令会在本地启动一个私有仓库,并将其映射到主机的5000端口。

  1. 推送镜像到私有仓库
    要将镜像推送到你的私有仓库,你首先需要给镜像打上标签,以便它指向私有仓库。

假设你有一个名为my-image的镜像,你可以使用以下命令为其打标签:

sudo docker tag my-image localhost:5000/my-image

然后,你可以将这个镜像推送到你的私有仓库:

sudo docker push localhost:5000/my-image
  1. 从私有仓库拉取镜像
    你可以使用以下命令从私有仓库中拉取镜像:
sudo docker pull localhost:5000/my-image
  1. 配置持久化存储(可选)
    默认情况下,Docker Registry的数据是存储在容器内部的,如果容器被删除,数据也会丢失。你可以通过挂载一个持久化存储卷来避免数据丢失:
sudo docker run -d -p 5000:5000 --name my-registry \
  -v /path/to/your/data:/var/lib/registry \
  registry:2

其中/path/to/your/data是你希望存储数据的本地路径。

  1. 配置认证和安全(可选)
    如果你希望为你的私有仓库添加认证或使用HTTPS,你可以进一步配置Docker Registry。可以参考Docker官方文档进行详细的设置。

这样,你就可以在本地成功搭建一个Docker私有仓库,并通过该仓库管理你的Docker镜像。

要通过Web端访问Docker私有仓库,你需要执行以下步骤:

1. 搭建Docker私有仓库

你应该已经完成了这一步,但作为确认,这里是搭建私有仓库的简单步骤:

docker run -d -p 5000:5000 --name registry registry:2

2. 配置Nginx或Apache作为反向代理

为了通过Web浏览器访问Docker私有仓库,你可以配置Nginx或Apache作为反向代理,这样可以提供一个友好的URL并且支持HTTPS。

使用Nginx作为反向代理
  1. 安装Nginx:

    sudo apt-get update
    sudo apt-get install nginx
    
  2. 配置Nginx:
    创建一个新的配置文件,例如/etc/nginx/sites-available/docker-registry,内容如下:

    server {
        listen 80;
        server_name your.registry.domain.com;
    
        location / {
            proxy_pass http://localhost:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

    重要: 如果你使用HTTPS,配置中的listen 80;需要改成listen 443 ssl;,并添加SSL证书的相关配置。

  3. 启用配置并重启Nginx:

    sudo ln -s /etc/nginx/sites-available/docker-registry /etc/nginx/sites-enabled/
    sudo systemctl restart nginx
    

3. 访问私有仓库的Web UI

  1. 访问Docker私有仓库的Web界面:

    如果你需要一个带有Web UI的Docker仓库,可以考虑使用第三方工具,如PortusHarbor

    • Portus: 提供身份验证和授权的功能,并支持浏览和管理Docker仓库中的镜像。
    • Harbor: 一个企业级的Docker注册表服务器,可以提供UI,RBAC,审计日志和镜像复制等功能。
  2. 安装Harbor:

    如果选择Harbor,安装步骤如下:

    • 下载并解压Harbor:

      wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-online-installer-v2.5.3.tgz
      tar xvf harbor-online-installer-v2.5.3.tgz
      cd harbor
      sudo apt-get update
      sudo apt-get install docker-compose-plugin
      
      
      

      online模式如果出现无法下载更新,可以选择下载离线包

      wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz
      
    • 配置Harbor:

      修改harbor.yml文件,设置主机名和其他相关配置。

      hostname: 192.168.1.1
      http:
      port: 8080

    • 启动Harbor:

      ./prepare
      ./install.sh
      
    • 访问Harbor:

      通过Web浏览器访问https://192.168.1.1:8080,Harbor会提供一个完整的UI供你管理Docker镜像。

在这里插入图片描述

4. 配置Docker客户端

配置Docker客户端,使其能够推送和拉取来自私有仓库的镜像。如果你设置了HTTPS,确保Docker客户端能够信任你的证书。

docker login your.registry.domain.com

这样,你就可以通过Web端访问和管理你的Docker私有仓库了。

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值