使用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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章