【体系-微服务架构】20-Registry 镜像仓库

01.概述

官方的 Docker Hub 是一个用于管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要 Docker Registry,它可以用来存储和管理自己的镜像。(主要用于将之前的项目做成镜像上传到私服,那么所有的客户端都可以拉取该镜像运行项目,即一次构建到处运行)


02.Docker Registry 私服安装

root@demo:~# cd /usr/local/docker/
root@demo:/usr/local/docker# mkdir registry
root@demo:/usr/local/docker# cd registry/
root@demo:/usr/local/docker/registry# vi docker-compose.yml
version: '3.1'
services:
  registry:
    image: registry
    restart: always
    container_name: registry
    ports:
      - 5000:5000
    volumes:
      - /usr/local/docker/registry/data:/var/lib/registry
root@demo:/usr/local/docker/registry# docker-compose up -d

在这里插入图片描述
配置客户端

root@demo:/usr/local/docker/registry# cd /etc/docker
root@demo:/etc/docker# vim daemon.json
{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.197.134:5000"
  ]
}
root@demo:/etc/docker# systemctl restart docker
root@demo:/etc/docker# docker info
...
 Insecure Registries:
  192.168.197.134:5000
...

root@demo:/etc/docker# docker tag tomcat 192.168.197.134:5000/tomcat
root@demo:/etc/docker# docker push 192.168.197.134:5000/tomcat
The push refers to repository [192.168.197.134:5000/tomcat]

在这里插入图片描述
在这里插入图片描述

root@demo:/etc/docker# docker tag tomcat 192.168.197.134:5000/tomcat:8.5.32 
root@demo:/etc/docker# docker push 192.168.197.134:5000/tomcat:8.5.32
The push refers to repository [192.168.197.134:5000/tomcat]

在这里插入图片描述
Docker Registry WebUI:Docker服务器仓库只为我们提供了REST风格的API,这代表着可以自己编写应用程序来对接API就可以操作仓库(通常用python来开发,paython来做这种服务端的运维软件,一般不用Java因为其太笨重)。这里推荐两个Docker Registry WebUI 工具:docker-registry-frontend和docker-registry-web,两个工具的功能和界面都差不多,这里以 docker-registry-fontend 为例讲解

root@demo:~# cd /usr/local/docker/registry/
root@demo:/usr/local/docker/registry# docker-compose down
Stopping registry ... done
Removing registry ... done
Removing network registry_default
root@demo:/usr/local/docker/registry# vim docker-compose.yml 
version: '3.1'
services:
  registry:
    image: registry
    restart: always
    container_name: registry
    ports:
      - 5000:5000
    volumes:
      - /usr/local/docker/registry/data:/var/lib/registry
        
  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.197.134
      - ENV_DOCKER_REGISTRY_PORT=5000
root@demo:/usr/local/docker/registry# docker-compose up -d

运行成功后在浏览器访问:http://192.168.197.134:5000
在这里插入图片描述
在这里插入图片描述


03.真正实现:一次构建,到处运行

因为机器硬件原因,无法进行演示。将myshop项目进行以此构建,到处运行实践,该项目会利用nexus、gitlab、docker和registry实现容器化部署的效果,亦可按照自己的思维实现该效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值