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

相关资料:

  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

本文参考文章

1.安装Docker(必要条件)

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

2.Docker安装Nexus3仓储

1.拉取sonatype/nexus3镜像
docker pull sonatype/nexus3
2.启动容器
docker run -d --name nexus3 --restart=always -p 5000:5000 -p 8081:8081 -v /mnt/docker/nexus-data:/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)
image

Name: 仓库的名称

HTTP: 仓库单独的访问端口

Enable Docker V1 API: 如果需要同时支持 V1 版本请勾选此项(不建议勾选)。

Hosted -> Deployment pollcy: 请选择 Allow redeploy 否则无法上传 Docker 镜像。

其它的仓库创建方法请各位自己摸索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。

image

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

6.安全设置

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

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

image

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

image

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

image

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.查看

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

posted @ 2019-09-10 09:42  SpringCore  阅读(985)  评论(1编辑  收藏  举报