【Docker应用篇】DockerRegistry镜像私服
【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镜像私服相关推荐
- maven集成docker插件进行打包镜像并推送私服
使用maven进行集成docker打包成镜像以及推送到docker私服 先水几句 我不会开场啊-默默无闻的送码人.不是吧不是吧.现在还有人用maven打包,然后手动上传jar.然后进行部署吗?你out ...
- Docker整理篇(docker-compose与私服搭建)
Docker整理篇(docker-compose) 安装与常用命令操作 Docker网络与数据卷 docker-compose与私服搭建 基本介绍 官网地址 https://docs.docker.c ...
- Docker入门篇-搭建docker私服(注册表)
在我们开始使用docker之前,我们先把私服搭建起来,这种顺序通常适用于生产级或实际工作的时使用docker的习惯.我们遵循这样的习惯. 概念 当我们执行docker pusll xxx的时候,默认是 ...
- Docker: vmware企业级docker镜像私服--Harbor的搭建
一 Harbor仓库介绍 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问 ...
- Harbor的搭建(vmware企业级docker镜像私服)
1.下载harbor,地址https://github.com/vmware/harbor 2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息 ...
- Docker篇之镜像打标签tag
日常线上活动中,当我们对系统进行开发时,做容器化管理,因为每一个版本不同,可能随着业务量的产生,需求的迭代更新,不同版本所需要的环境不同. 因此,为了满足这样的问题,我们通常做的就是对每一个版本来打标 ...
- Docker一篇从入门到实战
Docker 基础入门 1.Windows 安装 Docker 安装教程:https://vuepress.mirror.docker-practice.com/install/ Docker for ...
- 0-3 Docker实用篇
Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦. 分布式系统中,依赖的组件非常多,不同组件之间 ...
- 由Docker的MySQL官方镜像配置的容器无法启动问题解决办法(修改配置后无法启动)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 为了方便阅读,我在原文基础上加了一些批注,说明我自己的情况,用红色标示. 这篇文章记录了我在使用 D ...
最新文章
- Eclipse中SVN设置文件为ignore后重新添加至版本控制
- Latex所有常用数学符号吐血整理!(包含大括号、等式对齐、矩阵)
- 二级计算机为让利消费者,计算机二级office题库训练题(2)
- 人才管理是什么意思_你还不懂人才梯队建设,哪有机会升职加薪?
- [转]RDLC报表-参数传递及主从报表
- Word2Vec中文语料实战
- hashmap为什么线程不安全_面试官:你说 HashMap 线程不安全,它为啥不安全呢?...
- Rabbit MQ windows下安装
- 前端开发:模块化 — 高效重构
- 地图整饰-框架与格网
- sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在线公开课 | 在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...
- Js批量下载花瓣网及堆糖网专辑图片
- 微软lumia固件服务器,IT之家学院:微软Lumia 950 XL刷Win10 ARM64教程增补进阶版
- 华为技术专家深度解析Java线程状态
- 新机常用软件及环境配置清单
- 设置IDEA的护眼插件
- 行人重识别论文阅读10-DDAG 动态双注意聚合学习策略
- Chrome浏览器更新后,无法调用Lodop打印
- PHPwebshell2022免杀bypass阿里云盾等所有安全设备
- spark学习基础篇1--spark概述与入门
热门文章
- 什么是死锁? 产生死锁的必要条件?怎样预防和避免死锁?
- iOS 快速开发电商平台
- 计算机跟设备维修都有什么,设备维护
- 2022年P气瓶充装判断题及在线模拟考试
- Matlab 双击或右键打开.m文件出现 error using open (line 146) 或error using edit (line 66)
- 标准ACL配置举例(某公司经理部、财务部和销售部)
- linux端口加密,通过OpenSSH的端口转发功能加密和解密tcp/ip数据
- PS教你绘制超美的中国风工笔画效果
- 身边的RFID产品应用
- 2020年电工(中级)实操考试视频及电工(中级)操作证考试