【Docker应用篇】DockerRegistry镜像私服

  • 什么Docker Registry
    • 概述
  • 基于 Docker 安装 Registry
  • 访问
  • 配置 Docker Registry 客户端
    • 检查客户端配置是否生效
    • 测试镜像上传
    • 查看全部镜像
    • 查看指定镜像
    • 测试拉取镜像
  • 部署 Docker Registry WebUI
    • docker-registry-frontend
    • 运行
  • 另一种UI镜像
    • 配置Docker信任地址
    • 测试docker push上传镜像

什么Docker Registry

概述

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

基于 Docker 安装 Registry

我们使用 Docker 来安装和运行 Registry ,通过pull命令获取镜像,注意: 这一步可以省略,配置了docker-compose.yml文件,启动项目docker-compose up发现没有images会自动去官服下载镜像

docker pull registry

在/usr/local/docker/路劲新建目录mkdir registry,新建文件touch docker-compose.yml

docker-compose.yml 配置如下:

version: '3.1'
services:registry:image: registryrestart: alwayscontainer_name: registryports:- 5000:5000volumes:- /usr/local/docker/registry/data:/var/lib/registry

启动项目:

docker-compose up   注意使用docker-compose 命令必须在docker-compose.yml文件目录下

访问

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

  • 浏览器端访问
 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","http://hub-mirror.c.163.com","https://pee6w651.mirror.aliyuncs.com"],# 配置Docker信任地址"insecure-registries": ["ip:5000"]
}# registry-mirrors:国内镜像加速器
# insecure-registries: 用于识别服务端     (192.168.40.136:5000)服务端

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

之后重新启动服务。

systemctl daemon-reloadsystemctl restart docker

检查客户端配置是否生效

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

Labels:Experimental: falseInsecure Registries:192.168.40.136:5000127.0.0.0/8Registry Mirrors:https://registry.docker-cn.com/http://hub-mirror.c.163.com/https://pee6w651.mirror.aliyuncs.com/

测试镜像上传

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

## 拉取一个镜像
docker pull tomcat## 查看全部镜像
docker images## 推送镜像到私有镜像服务必须先tag
## 标记本地镜像并指向目标仓库(ip:port/image_name:tag,该格式为标记版本号)
docker tag tomcat 192.168.40.136:5000/tomcat:8.5.32## 提交镜像到仓库
docker push 192.168.40.136:5000/tomcat:8.5.32

查看全部镜像

curl -XGET http://192.168.40.136:5000/v2/_catalog浏览器访问: http://192.168.40.136:5000/v2/_catalog

查看指定镜像

curl -XGET http://192.168.40.136:5000/v2/tomcat/tags/list浏览器访问: http://192.168.40.136:5000/v2/tomcat/tags/list

测试拉取镜像

  • 先删除镜像
docker rmi tomcat
docker rmi 192.168.40.136:5000/tomcat:8.5.32
  • 再拉取镜像
docker pull 192.168.40.136:5000/tomcat:8.5.32

部署 Docker Registry WebUI

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

docker-registry-frontend

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

version: '3.1'
services:frontend:image: konradkleine/docker-registry-frontend:v2ports:- 8080:80volumes:- ./certs/frontend.crt:/etc/apache2/server.crt:ro- ./certs/frontend.key:/etc/apache2/server.key:roenvironment:- ENV_DOCKER_REGISTRY_HOST=192.168.40.136- ENV_DOCKER_REGISTRY_PORT=5000# version:项目版本号
# services:服务
# frontend:服务名
# images:镜像
# ports:端口  - 宿主机端口:服务端口
# volumes:数据卷 -宿主机:服务机
# environment :环境变量

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

运行

docker-compose up -d# docker-compose命令必须在docker-compose.yml同文件目录下运行

运行成功后在浏览器访问:http://192.168.40.136:8080

另一种UI镜像

使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:

version: '3.0'
services:registry:image: registryvolumes:- ./registry-data:/var/lib/registryui:image: joxit/docker-registry-ui:staticports:- 8080:80environment:- REGISTRY_TITLE=封于修的镜像仓库- REGISTRY_URL=http://registry:5000depends_on:- registry

配置Docker信任地址

我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置

# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容 和上面第一种有所区别,这里为8080端口,到时候docker tag 必须指定为8080端口
"insecure-registries":["http://192.168.234.128:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
# 重新启动服务
docker-compose up -d

访问http://192.168.234.128:8080

测试docker push上传镜像

docker push前必须先docker tag 指定192.168.234.128(IP地址):8080(端口)/jdk(镜像名称路径):8(版本)

docker tag openjdk:8-jre  192.168.234.128:8080/jdk:8

docker push 192.168.234.128:8080/jdk:8

具体实践可以查看SpringBoot项目部署到docker环境中

【Docker应用篇】DockerRegistry镜像私服相关推荐

  1. maven集成docker插件进行打包镜像并推送私服

    使用maven进行集成docker打包成镜像以及推送到docker私服 先水几句 我不会开场啊-默默无闻的送码人.不是吧不是吧.现在还有人用maven打包,然后手动上传jar.然后进行部署吗?你out ...

  2. Docker整理篇(docker-compose与私服搭建)

    Docker整理篇(docker-compose) 安装与常用命令操作 Docker网络与数据卷 docker-compose与私服搭建 基本介绍 官网地址 https://docs.docker.c ...

  3. Docker入门篇-搭建docker私服(注册表)

    在我们开始使用docker之前,我们先把私服搭建起来,这种顺序通常适用于生产级或实际工作的时使用docker的习惯.我们遵循这样的习惯. 概念 当我们执行docker pusll xxx的时候,默认是 ...

  4. Docker: vmware企业级docker镜像私服--Harbor的搭建

    一 Harbor仓库介绍 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问 ...

  5. Harbor的搭建(vmware企业级docker镜像私服)

    1.下载harbor,地址https://github.com/vmware/harbor 2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息     ...

  6. Docker篇之镜像打标签tag

    日常线上活动中,当我们对系统进行开发时,做容器化管理,因为每一个版本不同,可能随着业务量的产生,需求的迭代更新,不同版本所需要的环境不同. 因此,为了满足这样的问题,我们通常做的就是对每一个版本来打标 ...

  7. Docker一篇从入门到实战

    Docker 基础入门 1.Windows 安装 Docker 安装教程:https://vuepress.mirror.docker-practice.com/install/ Docker for ...

  8. 0-3 Docker实用篇

    Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦. 分布式系统中,依赖的组件非常多,不同组件之间 ...

  9. 由Docker的MySQL官方镜像配置的容器无法启动问题解决办法(修改配置后无法启动)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 为了方便阅读,我在原文基础上加了一些批注,说明我自己的情况,用红色标示. 这篇文章记录了我在使用 D ...

最新文章

  1. Eclipse中SVN设置文件为ignore后重新添加至版本控制
  2. Latex所有常用数学符号吐血整理!(包含大括号、等式对齐、矩阵)
  3. 二级计算机为让利消费者,计算机二级office题库训练题(2)
  4. 人才管理是什么意思_你还不懂人才梯队建设,哪有机会升职加薪?
  5. [转]RDLC报表-参数传递及主从报表
  6. Word2Vec中文语料实战
  7. hashmap为什么线程不安全_面试官:你说 HashMap 线程不安全,它为啥不安全呢?...
  8. Rabbit MQ windows下安装
  9. 前端开发:模块化 — 高效重构
  10. 地图整饰-框架与格网
  11. sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在线公开课 | 在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...
  12. Js批量下载花瓣网及堆糖网专辑图片
  13. 微软lumia固件服务器,IT之家学院:微软Lumia 950 XL刷Win10 ARM64教程增补进阶版
  14. 华为技术专家深度解析Java线程状态
  15. 新机常用软件及环境配置清单
  16. 设置IDEA的护眼插件
  17. 行人重识别论文阅读10-DDAG 动态双注意聚合学习策略
  18. Chrome浏览器更新后,无法调用Lodop打印
  19. PHPwebshell2022免杀bypass阿里云盾等所有安全设备
  20. spark学习基础篇1--spark概述与入门

热门文章

  1. 什么是死锁? 产生死锁的必要条件?怎样预防和避免死锁?
  2. iOS 快速开发电商平台
  3. 计算机跟设备维修都有什么,设备维护
  4. 2022年P气瓶充装判断题及在线模拟考试
  5. Matlab 双击或右键打开.m文件出现 error using open (line 146) 或error using edit (line 66)
  6. 标准ACL配置举例(某公司经理部、财务部和销售部)
  7. linux端口加密,通过OpenSSH的端口转发功能加密和解密tcp/ip数据
  8. PS教你绘制超美的中国风工笔画效果
  9. 身边的RFID产品应用
  10. 2020年电工(中级)实操考试视频及电工(中级)操作证考试