使用Docker部署镜像仓库私服Registry


title: Docker部署Registry
date: 2020-03-20 10:29:51
categories: 微服务基础设施


概述

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

安装

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

客户端配置

请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)(第二个位置为私服Registry)

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn/"
  ],
  "insecure-registries": [
    "192.168.1.3:8100"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

使用 docker info可查看信息

测试镜像上传

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

## 拉取一个镜像
docker pull tomcat

## 查看全部镜像
docker images

## 标记本地镜像并指向目标仓库(ip:port/image_name:tag,该格式为标记版本号,最后的tomcat为在仓库的名字)
docker tag tomcat 192.158.1.3:8100/mytomcat

## 提交镜像到仓库
docker push 192.158.1.3:8100/tomcat

查看全部镜像

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

测试拉取镜像

  • 再拉取镜像
docker pull 192.168.1.3:8100/mytomcat
  • 服务器镜像的删除
docker rmi 192.168.1.3:8100/mytomcat

Registry WebUI

修改 docker-compose.yml

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

  frontend:
    image: konradkleine/docker-registry-frontend:v2
    ports:
      - 8110: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.1.3
      - ENV_DOCKER_REGISTRY_PORT=8100

猜你喜欢

转载自blog.csdn.net/qq_42013035/article/details/105620809