项目地址:https://github.com/klausmeyer/docker-registry-browser

在工作中,有时需要搭建自己的Docker镜像仓库来存储镜像,如果使用Harbor的话有点太重量级了。这里分享一套基于registry和docker-registry-browser的轻量级解决方案,带可视化管理!

简介

registry

registry是Docker官方提供的用于存储和分发Docker镜像的服务,使用它能创建私有的Docker镜像仓库,满足对镜像私有化管理的需求。

docker-registry-browser

docker-registry-browser是一款基于registry的可视化管理工具,使用它可以方便地查看和管理存储在registry中的Docker镜像。

下面是使用它管理registry中镜像的效果图,页面还是挺不错的!

自建一个轻量级Docker镜像仓库 - 图1

安装

首先需要安装好registry和docker-registry-browser,这里使用Docker来安装。

registry

  • 使用如下命令来下载registry的镜像;
  1. docker pull registry:2
  • 下载完成后使用如下命令运行registry容器;
  1. docker run -p 5000:5000 --name registry2 \
  2. --restart=always \
  3. -e REGISTRY_STORAGE_DELETE_ENABLED="true" \
  4. -d registry:2

docker-registry-browser

  • 使用如下命令来下载docker-registry-browser的镜像;
  1. docker pull klausmeyer/docker-registry-browser
  • 下载完成后使用如下命令运行docker-registry-browser容器;
  1. docker run -p 5001:8080 --name registry-browser \
  2. -e SECRET_KEY_BASE=123456 \
  3. -e DOCKER_REGISTRY_URL=http://192.168.3.101:5000/v2 \
  4. -e ENABLE_DELETE_IMAGES=true \
  5. -d klausmeyer/docker-registry-browser

自建一个轻量级Docker镜像仓库 - 图2

使用

  • 首先使用<font style="color:rgb(40, 202, 113);">docker tag</font>命令将本地镜像标签修改为registry中的地址;
  1. docker tag example/example-admin:1.0-SNAPSHOT 192.168.3.101:5000/example/example-admin:1.0-SNAPSHOT
  • 然后通过<font style="color:rgb(40, 202, 113);">docker push</font>命令将镜像推送至registry镜像仓库;
  1. docker push 192.168.3.101:5000/example/example-admin:1.0-SNAPSHOT
  • 推送完毕后在docker-registry-browser就可以查看到对应的镜像了;
  • 如果想删除镜像的话,可以点击镜像查看详情,在最底部有删除按钮;
  • 如果想测试下镜像的拉取功能,可以使用如下命令;
  1. # 删除原来的本地镜像
  2. docker rmi 192.168.3.101:5000/example/example-admin:1.0-SNAPSHOT
  3. docker rmi example/example-admin:1.0-SNAPSHOT
  4. # 从registry中拉取镜像
  5. docker pull 192.168.3.101:5000/example/example-admin:1.0-SNAPSHOT
  6. # 修改镜像标签(主要删除镜像的地址前缀)
  7. docker tag 192.168.3.101:5000/example/example-admin:1.0-SNAPSHOT example/example-admin:1.0-SNAPSHOT
  • 接下来使用如下命令,就可以把example项目后台管理系统对应的API服务运行起来了;
  1. docker run -p 8080:8080 --name example-admin \
  2. --link mysql:db \
  3. --link redis:redis \
  4. -v /etc/localtime:/etc/localtime \
  5. -v /mydata/app/admin/logs:/var/logs \
  6. -d example/example-admin:1.0-SNAPSHOT

总结

通过registry和docker-registry-browser搭建轻量级Docker镜像仓库的过程,比起重量级的Harbor还是挺简单的!