Docker compose 搭建 Docker Registry 私服

安装 Docker Registry 私服

概述

官方的 Docker Hub 是一个用于管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要 Docker Registry,它可以用来存储和管理自己的镜像。

安装

在之前的 Docker 私有仓库 章节中已经提到过如何配置和使用容器运行私有仓库,这里我们使用 docker-compose 来安装,配置如下:

version: '3.1'
services:
  registry:
    image: registry
    restart: always
    container_name: registry
    ports:
      - 5000:5000
    volumes:
      - /usr/local/docker/registry/data:/var/lib/registry

测试

启动成功后需要测试服务端是否能够正常提供服务,有两种方式:

浏览器端访问
http://你的虚拟机ip:5000/v2/
在这里插入图片描述
终端访问
curl http://你的虚拟机ip:5000/v2/
在这里插入图片描述


配置 Docker Registry 客户端

概述

以 Ubuntu Server 16.04 LTS 版本为例,它属于systemd 系统,需要在/etc/docker/daemon.json中增加如下内容(如果文件不存在请新建该文件)

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "registry服务端ip:5000"
  ]
}

注意:该文件必须符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

检查客户端配置是否生效

使用 docker info命令手动检查,如果从配置中看到如下内容,说明配置成功(192.168.75.133 为教学案例 IP)

Insecure Registries:
 192.168.75.133:5000
 127.0.0.0/8

测试镜像上传

我们以 tomcat为例测试镜像上传功能

## 拉取一个镜像
docker pull tomcat

## 查看全部镜像
docker images

## 标记本地镜像并指向目标仓库(ip:port/image_name:tag,该格式为标记版本号)
docker tag tomcat192.168.75.133:5000/tomcat

## 提交镜像到仓库
docker push 192.168.75.133:5000/tomcat

查看全部镜像

curl -XGET http://192.168.75.133:5000/v2/_catalog

查看指定镜像

以 tomcat为例,查看已提交的列表

curl -XGET http://192.168.75.133:5000/v2/tomcat/tags/list

测试拉取镜像

先删除镜像

docker rmi tomcat
docker rmi 192.168.75.133:5000/tomcat

再拉取镜像

docker pull 192.168.75.133:5000/tomcat

部署 Docker Registry WebUI

私服安装成功后就可以使用 docker 命令行工具对 registry 做各种操作了。然而不太方便的地方是不能直观的查看 registry 中的资源情况。如果可以使用 UI 工具管理镜像就更好了。这里介绍两个 Docker Registry WebUI 工具

  • docker-registry-frontend
  • docker-registry-web
    两个工具的功能和界面都差不多,我们以docker-registry-fontend 为例讲解

docker-registry-frontend

我们使用 docker-compose来安装和运行,docker-compose.yml配置如下:

version: '3.1'
services:
  frontend:
    image: konradkleine/docker-registry-frontend:v2
    ports:
      - 8080:80
    volumes:
      - ./certs/frontend.crt:/etc/apache2/server.crt:ro
      - ./certs/frontend.key:/etc/apache2/server.key:ro
    environment:
      - ENV_DOCKER_REGISTRY_HOST=192.168.75.133
      - ENV_DOCKER_REGISTRY_PORT=5000

注意:请将配置文件中的主机和端口换成自己仓库的地址

最好将registry前端和registry配置在同一台虚拟机上,运行成功后在浏览器访问:http://192.168.75.133:5000

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值