Docker配置Nexus3私有库

查理谈科技 2024-06-09 10:59:20

商业公司的Docker 镜像, 不能完全依赖于Docker 公司的DockerHub 镜像库, 一定要搭建自己公司的镜像库,公司这里使用Nexus3 搭建了自己的私有库, 目前可以存储Java、NodeJs、Docker的build产品以及依赖库。本篇主要讲述如何在Docker 中配置公司的Nexus3 私有仓库。

在公司层面的Docker 使用方面, Docker 镜像管理(Image) 是一个重要的方面, 公司的产品,如果打包成Docker 镜像, 就一定不能发布到公司的私有Docker 镜像仓库中, 目前公司的私有镜像仓库采用的是Nexus3 OSS 版, 请参照本文档配置开发、运维人员的Docker 环境

说明:

以下文档中提到的xde***c.com,以及ip 1x.xx.xx.xx, 这两个是对应的关系, 域名xde***c已经指向了ip 1x.xx.xx.xx。

一、安装Nexus,并初次启动Nexus

这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。下载地址:http://www.sonatype.org/nexus/go。

这里选择War, 然后放到Tomcat 容器即可。

初次启动之后,你可以在浏览器上访问nexus这个maven管理器

地址:http://localhost:8081/

当然,你可以使用默认的用户登录。

用户名:admin

密码:admin123

此时,观看命令窗口,会有记录相关的操作记录。

正式环境下, 需要安装到Linux 环境中, 这里不再详述。

二、Nexus库信息

目前公司已经安装和配置了私有Nexus3, 地址为:http://devops.xde***c.com.cn:8081

目前,已经配置完Nexus Docker 库,有两个公司自建库:

具体信息如下:

名称

地址

类型

端口

dteDockerHubProxy

http://devops.xde***c.com.cn:8081/repository/dteDockerHubProxy/

Proxy

dteHostedDocker

http://devops.xde***c.com.cn:8081/repository/dteHostedDocker/

Hosted

8083

dteDockerGroup

http://devops.xde***c.com.cn:8081/repository/dteMavenGroup/

Group

8082

后续就可以在每个开发者电脑上配置Docker集成, 以及在每个Docker项目中添加此Nexus信息,本文档系统说明如何进行配置。

三、Docker配置文件中设置私有Nexus库

配置Docker 注册信息

Docker的私库能够使用HTTP或者HTTPS。Nexus 3都予以支持。本文的方式採用HTTP方式。因此须要设定docker。在docker启动前设定例如以下信息是须要的

项目

具体说明

设定对象文件

/etc/docker/daemon.json

设定内容

insecure-registries

具体配置内容:

"insecure-registries": [

"1x.xx.xx.xx:8082",

"1x.xx.xx.xx:8083"

]

在Mac中,点击Docker Desktop,选择设置,然后添加上面的内容:

配置之后,重启Docker Engine。

命令行中登录

在命令行中,登录Nexus,为后续的登录生成相应的Authentication key:

# docker login -u develop 1x.xx.xx.xx:8082

注意:

登录信息保存在~/.docker/config.json中。

验证Docker 镜像从Nexus3 私有库中:

# docker pull 1x.xx.xx.xx/httpd:2.4-alpine

结果如下:

同时,可以登录Nexus3 的管理端页面的Docker 组(http://devops.xde***c.com.cn:8081/#browse/browse:dteDockerGroup),确认httpd的Docker镜像已经下载:

四、在项目中管理Docker 镜像1.上传Docker 镜像

对于已有的Docker 镜像,也可以推送到Nexus私有库中。 例如,对于admin/lcpmodel镜像,docker hub 地址为:https://hub.docker.com/repository/docker/admin/lcpurbancarbonmodel

首先,拉取:

# docker pull admin/lcpmodel:v0.0.1

然后,使用docker tag设置一个别名,注意这里是用8083端口:

# docker tag admin/lcpmodel:v0.0.1 1x.xx.xx.xx:8083/lcpmodel:v0.0.1

然后,执行push 操作:

# docker push 1x.xx.xx.xx:8083/lcpmodel:v0.0.1

导入中:

最后导入的结果:

验证:

2.下载Docker 镜像

从私有库下载:

# docker pull 1x.xx.xx.xx:8083/lcpmodel:v0.0.1

 

0 阅读:0

查理谈科技

简介:感谢大家的关注