项目作者: panxiaoan

项目描述 :
搭建 私有 Docker 仓库
高级语言: Shell
项目地址: git://github.com/panxiaoan/private-docker-registry.git
创建时间: 2018-08-13T02:04:19Z
项目社区:https://github.com/panxiaoan/private-docker-registry

开源协议:

下载


搭建 私有 Docker 仓库

介绍

  • Docker Registry:是 Docker 官方提供的镜像仓库服务,开源免费,用于搭建私有仓库服务,在内部分发镜像
  • Docker Registry Web:能够通过浏览器可视化的查看镜像仓库中的:镜像、TAG、事件、删除镜像等

参考

使用方法

准备

  1. # 下载 Docker 官方仓库服务镜像
  2. docker pull registry:2.6.2
  3. # 下载仓库服务 Web UI 镜像
  4. docker pull hyper/docker-registry-web
  5. # 创建镜像存放目录
  6. mkdir -p /opt/docker/registry
  7. # 创建 Registry Web DB 存放目录
  8. mkdir -p /opt/docker/registry-db
  9. # 克隆 private-docker-registry 项目
  10. cd /opt/docker
  11. git clone https://github.com/panxiaoan/private-docker-registry.git
  12. # 修改镜像配置文件中的 IP 地址
  13. vim private-docker-registry/conf/registry/config.yml
  14. vim private-docker-registry/conf/registry-web/config.yml

创建验证文件

  1. cd ../private-docker-registry
  2. ./generate-keys.sh

创建、下载、运行容器

  1. cd ../private-docker-registry
  2. docker-compose up -d

使用

  • Registry URL: localhost:5000
  • Registry Web UI URL: http://localhost:5001
  • 默认账号密码:admin / admin
  • 登录 Registry Web 后,请给 admin 添加 write-all 角色,才能拉取和推送镜像

测试

  1. # 此处登录的是 Registry
  2. docker login localhost:5000
  3. docker pull hello-world
  4. docker tag hello-world localhost:5000/hello-world:v1.0.0
  5. docker push localhost:5000/hello-world:v1.0.0
  6. docker rmi localhost:5000/hello-world:v1.0.0
  7. docker run localhost:5000/hello-world:v1.0.0

注意事项

  • 当远程访问时,这个例子没有配置反向代理,所以需要修改客户端的 Docker 配置
  1. # 停止 Docker
  2. systemctl stop docker
  3. # 编辑配置文件
  4. vim /usr/lib/systemd/system/docker.service
  5. # 加入这一段:--insecure-registry 192.168.246.146:5000
  6. ExecStart=/usr/bin/dockerd --insecure-registry 192.168.246.146:5000
  7. # 生效和启动 Docker
  8. systemctl daemon-reload
  9. systemctl start docker
  • 如果在测试或生产环境部署,则需要在 conf/registryconf/registry-web 目录中,将 config.yml 文件中的 URL 修改为宿主机 IP 或者域名

Registry Web

在 Registry Web 中批量删除历史镜像

  • 打开 postman 导入文件 postman/Docker Registry Web.postman_collection.json
  • 修改 Registry WEB 的 URL 和登录账号

    Alt text

  • 修改测试脚本中需删除的:镜像名称、最大和最小标签数

    Alt text