文档章节

Docker镜像仓库服务-Nexus

openthings
 openthings
发布于 2018/12/15 18:39
字数 1170
阅读 68
收藏 5

运维云原生集群系统,建立自己的私有Docker镜像仓库必不可少。一方面可以加快多节点部署容器镜像的下载速度,另一方面是为了安全(容器里存储有系统所有的信息、包括密码、数据库等等,切记不可上传dao共有镜像仓库)。可以创建私有镜像仓库的服务软件主要有这么几个:

  • Docker Registry,Docker自建,使用最为简单,适合个人或者3-5人小团队。
  • Harbor,基于Docker Registry开发,在之上加入了Nginx服务层,支持多租户、负载均衡、HA和WebUI,可以满足大型服务平台使用。功能强大,配置稍微复杂一些。
    • Harbor原来由VMWare中国研究中心开发,2018年已经加入CNCF云原生基金会。
  • Sonatype Nexus,就是那个以Maven库托管知名的Sonatype开发的,可以将各种开发组件库一锅端了。非常适合开发团队使用。
  • SUSE Portus,简单易用,适合中等规模的生产级集群使用。

这里,主要介绍Nexus的使用。

1、快速安装

Nexus可以提供多种软件组件服务,这里我通过容器来提供Nexus服务。运行下面的命令:

docker run -d --name nexus -p 5000:5000 -p 8081:8081 sonatype/nexus3

说明:

  • 这里的8081为nexus的管理端口。
  • 5000为容器镜像服务使用的端口,留作后面创建容器镜像仓库服务使用。下面进一步说明。
  • 上面的容器存储使用容器内的目录,当容器实例删除时将会丢失。
    • 持久存储通过-v参数来定义。

2、登陆管理界面

上面的容器启动完毕后,在浏览器输入网址:

http://localhost:8081

将会显示Nexus主界面,点击“Sign in”登录(初始账号admin/admin123)。如下:

3、创建Docker仓库

点击齿轮图标进入设置界面,如下:

使用“Create Repository”创建容器镜像仓库,选择Docker(hosted)类型,设置服务http端口为5000。然后查看属性。

这里的端口5000是启动容器时就设好的。

  • 在Nexus中每一个容器镜像服务仓库需要指定一个端口,而在容器中必须通过-p参数开放该端口,外部才可以访问。

4、授权沙盒设置

启动匿名访问。

5、启用授权沙盒

容器镜像服务需要单独启用授权沙盒,在Security-Realms页面中将Docker Bearer Token Realm加入到Active列表中。

  • 默认安装中,没有启用Docker Bearer Token Realm,会导致docker login时连接被拒。

为了方便,上面使用的是http连接协议,不建议在外网使用。

外网服务应使用https连接,需要预留端口,以及创建ssl证书并使用“SSL Certificates”添加进来。

6、Docker 设置

为了方便,上面使用的是http连接协议,还需要在Docker客户机设置才能访问(默认为https)。

执行:

sudo gedit /etc/docker/daemon.json

在文件中添加"insecure-registries": ["http://10.1.1.184:5000"],如下:

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": ["http://10.1.1.184:5000"]
}

说明:

  • 这里的"exec-opts": ["native.cgroupdriver=systemd"]是为了运行Kubernetes,加起来就是上面的文件内容。
  • 10.1.1.184为我的服务器地址,5000为上面Docker启动和 Repository的服务端口,必须一致。

然后,需要重新启动Docker:

sudo systemctl restart docker

查看一下信息:docker info,看是否出现insecure-registries的信息。

7、Docker login

使用下面的方式登录到容器镜像服务。

docker login 10.1.1.184:5000

8、开始使用

使用Docker Tag对容器打新的标,指向自建的仓库。

docker tag sonatype/nexus3 10.1.1.184:5000/openthings/nexus3

使用Docker push推送容器镜像。

docker push 10.1.1.184:5000/openthings/nexus3

使用Docker pull拉取镜像。

docker pull 10.1.1.184:5000/openthings/nexus3

使用者发现Nexus会出现错误,无法连接。使用下面的命令重启Nexus的容器服务,再重新登录就好了。

docker restart nexus

最后,简单说下体会,使用Nexus的最大好处是同时支持Maven等软件仓库,维护比较简单。其它方面如性能、容错、扩容等企业级功能相对是比较弱的,企业版里提供HA,是收费的Feature。

更多参考

 

© 著作权归作者所有

共有 人打赏支持
openthings
粉丝 297
博文 1093
码字总数 622810
作品 1
东城
架构师
私信 提问
Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
2018/08/14
0
0
Kunbernetes-基于Nexus构建私有镜像仓库

1、 安装Nexus Nexus是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven、npm、Docker、YUM、Helm等格式数据的存储和发布;并且能够与Jekins、SonaQube和Eclipse等工具进行...

店家小二
2018/12/14
0
0
Docker学习之搭建私有镜像仓库

过节之前来一发,又是许久没整理笔记了,今天跟大家聊聊Docker如何搭建私有仓库的几种方式。首先我们来回顾一下之前讲到的Doker 平台的基本构成。 Doker 平台的基本构成 Docker 平台基本上由...

小柒2012
2018/04/16
0
0
离线网络环境下一键式部署

关键词 封闭网络:一个相对封闭的网络环境,仅可以使用有限的资源如:maven镜像仓库、Centos/Ubuntu源等,无法连接互联网的网络环境。 一键部署:这里所说的“一键式部署”不仅仅是指这样的场...

ThoughtWorks中国
2017/12/29
0
0
使用Nexus3构建Docker私有镜像仓库

一、安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven、npm、Docker、YUM、Helm等格式数据的存储和发布;并且能够与Jekins、SonaQube和Eclipse等工具进...

daibaiyang119
2018/07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 看来我只适合当一个千斤顶

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《我想我是伟大的》 《我想我是伟大的》- 九天 手机党少年们想听歌,请使劲儿戳(这里) 最近面试的好多呀, 面试了一个漂...

小小编辑
17分钟前
123
7
grafana安装使用及与zabbix集成

grafana简介 Grafana是一个完全开源的度量分析与可视化平台,可对来自各种各种数据源的数据进行查询、分析、可视化处理以及配置告警。 Grafana支持的数据源: 官方:Graphite,InfluxDB,Ope...

阿dai学长
50分钟前
11
0
带你看数据挖掘与机器学习-厦大EDP上课出勤预测

带你看数据挖掘与机器学习-厦大EDP上课出勤预测 标签: 数据挖掘 特征工程 机器学习 出勤预测 write by xmhexi 2019/3/22 内容提要 首先说明本文是一篇科普文章,通过一个实际案例,帮助理解什...

xmhexi
今天
118
0
IOS  学习记录

1.StackView=>IOS 9及以上支持 2.布局方式: AutoLayout / StackView 堆布局 (线性布局) 3.屏幕适配 (资源分辨率、设计分辨率、屏幕分辨率) Size Class技术 可以针对 屏幕的方向进行设置...

萨x姆
今天
5
0
第四次工业革命:自主经济的崛起

https://36kr.com/p/5170370.html

shengjuntu
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部