使用 Docker Compose 搭建 Registry 鏡像管理平臺及使用配置

Docker Registry 簡介

Docker Hub 是 Docker 官方提供的一個管理公共鏡像的鏡像倉庫,咱們能夠從上面拉取咱們想要的鏡像,也能夠推送本身的鏡像上去。但有時候,在沒法訪問互聯網的狀況下或者不但願將本身的鏡像推送到公網上時,那麼 Docker Registry (鏡像私服)就能夠用來存儲管理本身的鏡像。linux

安裝 Docker Registry

  • 建立 docker-compose.ymldocker

    version: '3.1'
    services:
      registry:
        image: registry
        restart: always
        container_name: registry
        ports:
          - 5000:5000
        volumes:
          - /usr/local/docker/registry/data:/var/lib/registry複製代碼
  • 啓動 docker composeapache

    $ docker-compose up -d複製代碼
  • 訪問:http://{ip}:5000/v2/json

安裝 Docker Registry UI

Docker Registry 安裝成功以後,不太方便只管地查看倉庫中的鏡像,能夠使用 Web UI 界面工具管理鏡像,docker-registry-frontend 就是其中之一tomcat

  • 建立 docker-compose.ymlfrontend

    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={docker registy ip}
          - ENV_DOCKER_REGISTRY_PORT={docker registy port}複製代碼

    上述文件須要自定義修改的配置工具

    • ENV_DOCKER_REGISTRY_HOST:安裝的 Docker Registry 訪問 IP
    • ENV_DOCKER_REGISTRY_PORT:安裝的 Docker Registry 訪問端口
  • 啓動 Docker Ccompose測試

    $ docker-compose up -d複製代碼
  • 訪問 http://{ip}:8080](http://{ip}:8080ui

    • 首頁 image
    • 鏡像列表頁 image

Linux 配置 Docker Registry

  • 編輯 daemon.json (若是不存在則新建)spa

    $ vi /etc/docker/daemon.json複製代碼

    完整文件以下:

    {
      "registry-mirrors": [
        "{鏡像加速器地址}"
      ],
      "insecure-registries": [
        "{docker registry ip}:5000"
      ]
    }複製代碼
  • 重啓服務

    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker複製代碼
  • 檢查配置是否生效

    $ docker info複製代碼

    出現如下內容,說明配置成功

    Insecure Registries:
     {docker registry ip}:5000
     127.0.0.0/8複製代碼

測試推送鏡像

  • 從 Docker Hub 公網拉取一個鏡像

    $ docker pull tomcat複製代碼
  • 標記該鏡像指向Docker Registry 私服倉庫

    $ docker tag tomcat {docker registry ip}:5000/tomcat複製代碼
  • 推送鏡像到倉庫

    $ docker push {docker registry ip}:5000/tomcat複製代碼

測試拉取鏡像

  • 刪除從 Docker Hub 公網上拉取的鏡像

    $ docker image rm {docker registry ip}:5000/tomcat複製代碼
  • 從 Docker Registry 私服中拉取鏡像

    $ docker pull {docker registry ip}:5000/tomcat複製代碼

END

  • 文章做者:彭超
  • 本文首發於我的博客:antoniopeng.com/2019/10/08/…
  • 版權聲明:本博客全部文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 彭超 | Blog
相關文章
相關標籤/搜索