CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

2021-02-20 10:45发布

相关资料:

  Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype

  Sonatype Nexus3 Docker Hub地址:https://hub.docker.com/r/sonatype/nexus3/

  Sonatype Nexus3一些介绍及使用:https://yeasy.gitbooks.io/docker_practice/repository/nexus3_registry.html

  本文参考文章:https://www.cnblogs.com/holdengong/archive/2019/09/05/11468290.html,https://blog.csdn.net/supertor/article/details/83146596

⒈安装Docker(必要条件)

  请参考https://www.cnblogs.com/fanqisoft/p/10439620.html安装Docker

⒉安装Nexus3仓储

  1.拉取sonatype/nexus3镜像

docker pull sonatype/nexus3

  2.启动容器

docker run -d --name nexus3 --restart=always -p 5000:5000 -p 8081:8081 --mount src=nexus-data,target=/nexus-data sonatype/nexus3

  **5000端口是用于镜像仓库的服务端口 8081 端口是nexus的服务端口

  3.访问管理页面

  http://localhost:8081

  4.登录

//在docker目录下查找admin.password文件并查看
cat `find /var/lib/docker -name admin.password -print`
//这一串guid就是默认密码
d374c028-9760-4dd8-b911-3cb67ebddba5

  5.创建仓储

  点击齿轮 - Repositories - Create repository - 选择 docker (hosted)

  

Name: 仓库的名称
HTTP: 仓库单独的访问端口
Enable Docker V1 API: 如果需要同时支持 V1 版本请勾选此项(不建议勾选)。
Hosted -> Deployment pollcy: 请选择 Allow redeploy 否则无法上传 Docker 镜像。
其它的仓库创建方法请各位自己摸索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。

   编写信息完成后选择“Create repository”按钮

  6.安全设置

  官方介绍:https://help.sonatype.com/repomanager3/formats/docker-registry/authentication

  点击Realms菜单 -  把 Docker Bearer Token Realm 移到右边的框中点击Save保存。

 

  添加用户规则:菜单 Security->Roles->Create role 在 Privlleges 选项搜索 docker 把相应的规则移动到右边的框中然后保存。

  添加用户:菜单 Security->Users->Create local user 在 Roles 选项中选中刚才创建的规则移动到右边的窗口保存。

 

  7.访问仓储(二选一)

    1.Nginx加密代理,使用SSL访问(需要生成证书),略。

    2.配置Docker http可信地址 

//编辑docker服务端设置
vim /etc/docker/daemon.json

//将下面内容加到配置文件中
"insecure-registries":["http://localhost:5000"]

//重载配置文件
systemctl daemon-reload

//重启Docker
systemctl restart docker

//查看设置是否生效 
docker info

 

  8.登录nexus私有仓库,测试是否可以连接成功

//输入admin账号密码
docker login http://localhost:5000

   **登录后用户信息保存在$HOME/.docker/config.json,如果需要切换账号就清空该文件内容即可。

  9.测试

    1.制作image

//拉取hello-world镜像作为示例
docker pull hello-world
//制作私有镜像
docker tag hello-world localhost:5000/hello-world

    2.推送到私有仓库

//推送到私有服务器
docker push localhost:5000/hello-world

  10.查看

   nexus还可以管理nuget,maven和其他包,可以作为企业集中资源管理中心。

 

  

标签: