【Docker】五 Docker Hub管理镜像
Docker Hub管理镜像
- 1 Docker Hub管理镜像
- 1.1 注册与登录
- 1.2 创建仓库
- 1.3 推送镜像
- 2 使用Docker Registry管理镜像
- 2.1 原理图
- 2.2 搭建Docker Registry 2.0
- 2.3 将镜像推送到Docker Registry 2.0
- 2.4 TIPS
- 3 使用Nexus管理Docker镜像
- 3.1 Nexus简介
- 3.2 Nexus下载
- 3.3 安装
- 3.4 账户
- 3.5 创建Docker仓库
- 3.6 Docker配置
- 3.7 登录私有仓库
- 3.8 容器启动Nexus
Docker Hub是Docker官方维护的Docker Registry,上面存放着很多优秀的镜像。不仅如此,Docker
Hub还提供认证、工作组结构、工作流工具、构建触发器等工具来简化我们的工作。 前文已经讲过,我们可使用docker search
命令搜索存放在Docker Hub中的镜像。这篇文章我们来详细探讨Docker Hub的使用。
1 Docker Hub管理镜像
1.1 注册与登录
Docker Hub的使用非常简单,只需注册一个Docker Hub账号,就可正常使用了。登录后,我们可看到 Docker Hub的主⻚,如图所示。
我们也可使用 docker login
命令登录Docker Hub。输入该命令并按照提示输入账号和密码,即可完 成登录。例如:
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't hav
e a Docker ID, head over to https://hub.docker.com to create one.
Username: itmuch
Password:
Login Succeeded
1.2 创建仓库
点击Docker Hub主⻚上的"Create Repository
"按钮,按照提示填入信息即可创建一个仓库。
如图,我们只需填入相关信息,并点击Create按钮,就可创建一个名为microservice-discovery-eureka
的公共仓库。
1.3 推送镜像
下面我们来将前文构建的镜像推送到Docker Hub。使用以下命令即可,例如:
docker push itmuch/microservice-discovery-eureka:0.0.1
经过一段时间的等待,就可推送成功。这样,我们就可在Docker Hub查看已推送的镜像。
2 使用Docker Registry管理镜像
很多场景下,我们需使用私有仓库管理Docker镜像。相比Docker Hub,私有仓库有以下优势:
- 节省带宽,对于私有仓库中已有的镜像,无需从Docker Hub下载,只需从私有仓库中下载即可;
- 更加安全;
- 便于内部镜像的统一管理。
我们来探讨如何搭建、使用私有仓库。可使用docker-registry项目或者Docker Registry 2.0来搭建 私有仓库,但docker-registry已被官方标记为过时,并且已有2年不维护了,不建议使用。
我们先用Docker Registry 2.0搭建一个私有仓库,然后将Docker镜像推送到私有仓库。
2.1 原理图
2.2 搭建Docker Registry 2.0
Docker Registry 2.0的搭建非常简单,只需执行以下命令即可新建并启动一个Docker Registry 2.0。
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
2.3 将镜像推送到Docker Registry 2.0
前文我们使用 docker push 命令将镜像推送到了Docker Hub,现在我们将前文构建的 itmuch/microservice-discovery-eureka:0.0.1
推送到私有仓库。
只需指定私有仓库的地址,即可将镜像推送到私有仓库。
docker push localhost:5000/itmuch/microservice-discovery-eureka:0.0.1
执行以上命令,我们发现推送并没有成功,且提示以下内容:
The push refers to a repository [localhost:5000/itmuch/microservice-discovery-eurek a]
An image does not exist locally with the tag: localhost:5000/itmuch/microservice-di scovery-eureka
我们知道,Docker Hub是默认的Docker Registry,因此,itmuch/microservice-discovery-eureka:0.0.1
相当于docker.io/itmuch/microservice-discovery-eureka:0.0.1。因此,要想将镜像推送到私有仓库,需 要修改镜像标签,命令如下:
docker tag itmuch/microservice-discovery-eureka:0.0.1 localhost:5000/itmuch/microse rvice-discovery-eureka:0.0.1
修改镜像标签后,再次执行以下命令,即可将镜像推送到私有仓库。
docker push localhost:5000/itmuch/microservice-discovery-eureka:0.0.1
2.4 TIPS
- docker-registry的GitHub:https://github.com/docker/docker-registry
- Docker Registry 2.0的GitHub:https://github.com/docker/distribution
- 本节中“私有仓库”表示私有Docker Registry,并非Docker中仓库的概念。
- Docker Registry 2.0需要Docker版本高于1.6.0。
- Docker Registry 2.0能够满足我们大部分场景下的需求,但它不包含界面、用户管理、权限控制等 功能。如果想要使用这些功能,可使用Docker Trusted Registry。
3 使用Nexus管理Docker镜像
3.1 Nexus简介
Nexus是一个多功能的仓库管理器,是企业常用的私有仓库服务器软件。目前常被用来作为Maven私服、Docker私服。本文基于 Nexus 3.5.2-01 版本进行讲解。
3.2 Nexus下载
前往:https://www.sonatype.com/download-oss-sonatype ,根据操作系统,下载对应操作系统下的安装包即可。
3.3 安装
Nexus在不同系统中安装略有区别,但总体一致。下面以在Linux系统中的安装为例说明:
- 创建一个Linux用户,例如:nexus
useradd nexus
- 解压Nexus安装包,为将解压后的文件设置权限,并修改属主为nexus用户
chmod -R 755 *
chown -R nexus:nexus *
- 将目录切换到
$NEXUS_HOME/nexus-3.5.2-01/bin
目录 - 需改
nexus.rc
文件,将其内容改为:
run_as_user="nexus"
表示使用nexus用户启动Nexus。
- 执行如下命令,查看Nexus为我们提供哪些命令。
./nexus --help
可显示类似如下的内容:
Usage: ./nexus {start|stop|run|run-redirect|status|restart|force-reload}
- 指定如下命令,即可启动Nexus
./nexus start
稍等片刻,Nexus即可成功启动。
3.4 账户
Nexus提供了默认的管理员账户,账号密码分别是admin/admin123
。用户可自行修改该默认账号密 码。
3.5 创建Docker仓库
访问http://localhost:8081 并登录
点击“Create repository”按钮,创建仓库。Nexus支持多种仓库类型,例如:maven、npm、
docker等。本文创建一个docker仓库。一般来说,对于特定的仓库类型(例如docker),细分
三类,分别是proxy、hosted、group,含义如下:hosted,本地代理仓库,通常我们会部署自己的构件到这一类型的仓库,可以push和pull。
proxy,代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库,只能pull。
group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组,只能 pull。
本文创建一个hosted类型的仓库 配置仓库,如图,填入如下结果:
3.6 Docker配置
下面,我们需要为Docker指定使用Nexus仓库。
- 修改 /etc/docker/daemon.json ,在其中添加类似如下的内容。
{"insecure-registries" : ["192.168.1.101:8082"]
... }
- 重启Docker
3.7 登录私有仓库
docker login 192.168.1.101:8082
即可登录私有仓库。然后,我们就可进行pull、push操作了。
3.8 容器启动Nexus
docker run -d -p 8081:8081 --name nexus sonatype/nexus3
【Docker】五 Docker Hub管理镜像相关推荐
- 第五十一章 管理镜像 - 镜像的数据库注意事项
文章目录 第五十一章 管理镜像 - 镜像的数据库注意事项 镜像的数据库注意事项 `IRIS` 实例兼容性 成员字节顺序注意事项 使用 `^DATABASE` 例程创建镜像数据库 第五十一章 管理镜像 ...
- Docker系列教程09-使用Docker Hub管理镜像
为什么80%的码农都做不了架构师?>>> > 原文:<http://www.itmuch.com/docker/09-docker-docker-hub/> ...
- docker第二天:管理docker镜像与容器(上)
docker镜像下载官网:https://hub.docker.com/explore/ 众所周知国内访问外国页面都是非常的卡顿的,导致使用docker pull拉取镜像时,下载速度很缓慢,甚至失败. ...
- Docker 使用 docker push 命令将镜像推送到 Docker Hub 服务器上
Docker 使用 docker push 命令将镜像推送到 Docker Hub 服务器上 DockerHub注册用户 请到官网注册账号,官网地址:https://hub.docker.com/ 在 ...
- Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境
Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...
- Docker学习--Docker镜像的管理操作
一.获取镜像 docker pull [IMAGE_NAME]:[TAG] [IMAGE_NAME]表示的是镜像的名称,[TAG]表示的是镜像的标签,也就是说我们需要通过"镜像名+标签&qu ...
- CentOS7构建docker私服管理镜像
使用私有仓库管理镜像 很多场景下,需要使用docker私服管理镜像.相比Docker Hub 私有仓库有以下优势: 节省带宽,对于私有仓库已有的镜像无需从Docker Hub 上下载,秩序从私有仓库中 ...
- 在Windows系统下,基于WLS从零开始部署我的 R shiny项目到 Docker 中,并将镜像发布到 Docker Hub(内附详细操作流程)
前言 需要将项目部署到Docker中,我之前也没有接触过这个,纯萌新记录一下整个过程. 注意:整个流程对于我来说是能成功跑通的,但我也不知道有没有冗余操作(因为我也不太懂),欢迎大家提出宝贵意见~ 我 ...
- linux docker安装 制作Elasticsearch容器镜像 并上传docker hub
1 linux docker下载安装 创建操作系统并启动容器 1.ubuntu系统下载docker apt-get install -y docker.io #查看docker版本 docker ve ...
最新文章
- Blender+Substance Painter全流程制作真实的机器人学习教程
- Lua 函数、闭包、尾调用总结
- 再译《A *路径搜索入门》之二
- [大数据]PySpark原理与基本操作
- 8 stark组件 展示数据
- nginx mozilla_Android进入汽车市场,Mozilla进入电视市场,等等
- 【OpenGL】Shader技巧集合
- java-redis字符类数据操作示例(一)
- 图像局部特征(八)--斑点检测子SIFT/SURF区别总结
- Java -考研 学习路线(笔记链接汇总)-个人用
- 设计模式(行为型模式)——模板方法模式(Template Method)
- web漏洞扫描器原理_漏洞扫描技巧篇——Web漏洞扫描器
- 微信运营必须收藏的软件工具网站合集
- IP地址和交换机原理
- Gluster管理命令的总结与归纳
- 有没有什么帮助睡眠的东西?助眠效果好的东西分享
- Photoshop 中的彩蛋
- 一个hin秀的小学三年级奥数题 [hin秀]
- VOC2012数据集百度云链接
- Android 自定义View实现翻棋游戏