Nexus介绍

Nexus 是一个强大的 Maven 仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问;我们可以在局域网搭建一个 Maven 私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。
Nexus 3.x还支持Docker仓库了,所以使用docker来搭建一下Nexus。

安装 Nexus3

查找镜像:

1
docker search nexus

docker-nexus-search

选取使用次数较多的镜像,拉取镜像:

1
docker pull sonatype/nexus3

查看镜像:

1
docker images

docker-nexus-pull

运行 Nexus 容器:
通过如下命令启动的 nexus 将对外暴露8081端口,并容器的持久化数据通过会存储在上述创建的空间中。在容器运行后,可以通过http://{host_ip}:8081访问nexus3应用,其中{host_ip}为容器所部署的宿主机的IP地址。
8082端口是暴露出来让docker客户端访问私有镜像仓库,上传docker镜像所使用。

1
docker run -d -p 8081:8081 -p 8082:8082 --name nexus --restart=always --privileged=true -v /tmp/nexus-data:/nexus-data sonatype/nexus3

解释:
-id 创建守护式容器
–name=名字 容器名字
-p 宿主机端口:容器端口映射
-v 宿主机目录:容器目录 目录挂载

查看容器日志:

1
docker logs nexus

确认启动后,访问 Nexus:

docker-nexus-visit

点击右上角登录,提示密码存放在/nexus-data/admin.password 这个目录下,进入容器,查看密码:

1
docker exec -it 1d0365865580 /bin/bash

登录后,修改默认密码即可。

搭建私有镜像仓库

Repository的type属性有:proxy,hosted,group三种。

属性 说明
proxy 即你可以设置代理,设置了代理之后,在你的nexus中找不到的依赖就会去配置的代理的地址中找
hosted 你可以上传你自己的项目到这里面
group 它可以包含前面两个,是一个聚合体。一个访问nexus的统一地址。简单的说,就是你可以上传私有的项目到hosted,以及配置proxy以获取第三方的依赖(比如可以配置中央仓库的地址)。前面两个都弄好了之后,在通过group聚合给客户提供统一的访问地址

创建仓库:

nexus-create

配置仓库:
设置镜像仓库的相关信息,包括名称、HTTP端口、是否允许匿名拉取镜像等信息。这里需要注意的是,此处的HTTP端口(此处的值为8082)很重要,后续拉取和推送进行是使用此端口进行的,而不是nexus本身对外暴露的端口。

nexus-config

连接仓库:
配置 /etc/docker/daemon.json 文件,加入:

1
"insecure-registries": ["192.168.1.63:8082"]

docker-add

另外,如果允许设置通过匿名的方式拉取镜像。这需要在Realms主页激活Docker Bearer Token Reamlm,如下图:

nexux-token

上传、拉取镜像

首先需要进行登录认证才能进行后续的操作,私有镜像仓库登录认证的语法和格式:docker login :。假设上述的nexus部署在本地上,私有镜像的端口为8082,则通过执行如下的命令登录私有镜像仓库:

1
docker login 127.0.0.1:8082

docker-login

认证的信息会被保存在~/.docker/config.json文件,在后续与私有镜像仓库交互时就可以被重用,而不需要每次都进行登录认证。

通过将其发布到托管存储库,然后其它人员就可以通过存储库获取自己需要的镜像。在将镜像推送到存储库之前,需要对镜像进行标记。当标记图像时,可以使用镜像标识符(imageId)或者镜像名称(imageName)。
标识镜像的语法和格式:docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>
举例:

1
docker tag nginx 127.0.0.1:8082/nginx:v1.0

上传镜像:

1
docker push 127.0.0.1:8082/nginx:v1.0

可以看到nexus中已经存在镜像:

docker-nexus-search

最后更新: 2019年10月01日 19:49

原始链接: http://blog.minhow.com/articles/docker/docker-nexus/

× 请我吃糖~
打赏二维码