Docker 安装 Nexus3 并搭建 Docker 私有镜像仓库
前言
Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven 仓库管理器”。
Nexus Repository 提供多种包格式的仓库:
安装部署
这里采用 Docker 进行安装
安装 nexus3
1 | docker run -itd \ |
参数说明:
8081
:可以通过 http 访问 nexus 应用
8082
:docker(hosted)私有仓库,可以 pull 和 push
8083
:docker(proxy)代理远程仓库,只能 pull
8084
:docker(group)私有仓库和代理的组,只能 pull
-v
:建立容器与宿主机的连接,将容器中的数据持久化到宿主机上
/nexus-data
:容器内 nexus 存放数据的目录
/u01/cicd/nexus3/data
:宿主机映射容器内数据目录
访问网页端
容器启动成功后访问:http://192.168.88.236:8081/
默认用户/密码:admin/admin123
创建 Docker 镜像仓库
Repository -> Repositories -> Create repository
repository 的类型
hosted
,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。proxy
,代理仓库,它们被用来代理远程的公共仓库,如 maven 中央仓库。group
,仓库组,用来合并多个 hosted/proxy 仓库,当你的项目希望在多个 repository 使用资源时就不需要多次引用了,只需要引用一个 group 即可。
创建 docker(hosted)类型的仓库
hosted 类型的仓库主要用于将自己的镜像上传至私库。
在创建镜像仓库的页面中,设置镜像仓库的相关信息(名称、HTTP 端口、是否允许匿名拉取镜像等)。
注意:这里设置的 HTTP 端口(8082)是后续拉取/推送镜像的端口
创建 docker(proxy)类型的仓库
proxy 类型的仓库主要是用于代理中央镜像仓库,从外网将镜像拉取至本地仓库中。
这里用的是阿里云的镜像地址,国内访问比较快。
创建 docker(group)类型的仓库
用于拉取镜像到本地使用,集成代理仓库和本地仓库的镜像。
配置 Docker Realm
将 Docker Bearer Token Realm 配置到右边,保存
修改 docker 配置
在 /etc/docker/daemon.json
文件中添加下面的内容:
1 | $ vim /etc/docker/daemon.json |
8082
:docker-hosted
仓库端口8084
:docker-group
仓库端口
重启 docker
服务
1 | $ service docker restart |
上传/拉取镜像
登录私服
1 | $ docker login -u admin -p wx123\!@# 192.168.88.236:8082 |
上传镜像
1 | # 拉取 hello-wrold 镜像 |
上传私库成功!
拉取镜像
1 | $ docker pull 192.168.88.236:8082/myhello-world:1.0 |
权限管理
默认是使用 admin
用户登录的,权限太高,可以创建一个 docker
账号,并创建对应的角色,分配 nx-repository-view-docker-*-*
权限
创建角色
创建用户
创建用户,并加入对应的角色组