nexus搭建docker镜像仓库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nexus搭建docker镜像仓库相关的知识,希望对你有一定的参考价值。

参考技术A 1 从docker拉取Nexus3镜像,这里使用的是3.30.0版本

2 创建nexus数据挂载目录

这里会宿主机目录权限问题,简单粗暴解决就是直接给我挂载的目录777权限,哈哈。要么就是在启动容器的时候给容器root权限。

3 运行nexus容器

接着重启docker 重启nexus就可以了。

等待了一段时间发现访问nexus还是没有起起来,通过 docker logs -f nexus3 看了一下日志,发现报错了,原因就是上面挂载了目录,目录的权限用户是root,nexus在容器内部中启动的时候是以nexus用户启动的,uid 是200,操作系统root用户的uid是1000,所以必然没有写入权限,启动报错。可以通过启动时添加 --privileged=true 赋予root权限解决这个问题,但是给一个容器赋予一个root权限是有点不安全。网上有些博客通过 chown 200 -R /opt/nexus-data 我没试成功,只能先这么搞了。

PS:这里给了两个端口,8081和8082,8081是nexus的默认端口,8082预留给docker私有仓库使用。

4 创建私有docker仓库
4.1 访问界面并登录

账号是admin,密码记录在挂载目录下的/admin.password文件里面,在登陆一波。
4.2 创建仓库

4.3 安全设置

4.4 测试

因为我们的仓库开放的是http的端口,而docker要求使用的是https,所以这里还要添加一下信任仓库。

再次登录成功了。

4.5 制作镜像并向私有仓库推送镜像

推送成功后到nexus页面查询我们是否推送成功。

可以看到已经看到了我们用于测试的nginx镜像了。

额外用一张图补充 docker tag 命令的用法

使用docker搭建nexus并配置docker私有仓库

搭建

Nexus是用于Maven私服的,不过在官网上发现最新的Nexus 3.x还支持Docker仓库了,所以使用docker来搭建一下Nexus

查找镜像

docker search nexus

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

docker pull sonatype/nexus3

查看拉取的镜像

docker images

之前踩坑过多,因此在启动之前先做一些准备工作,如下:
创建要挂载映射容器的文件夹/opt/nexus-data,并将此文件的权限设置为777及用户和用户组设置为nexus,否则会启动失败,同学们姑且一试。如不挂载容器的/nexus-data文件夹,则可忽略此步骤。

mkdir -p /opt/nexus-data
useradd -U nexus
chown nexus:nexus -R /opt/nexus-data
chomod 777 -R /opt/nexus-data

启动容器

docker run -d --name nexus3  --restart=always -p 8081:8081 -p 8082:8082  -p 8083:8083  -p 8084:8084  -p 8085:8085   -v /opt/nexus-data:/nexus-data sonatype/nexus3

查看容器日志

docker logs nexus3

登录配置

确保正常启动后 使用浏览器访问http://服务器ip:8081

点击右上角登录 账号密码:admin/admin123
登录后点击设置界面 选择Repositories,点击Create repository,如图所示

技术图片

选择仓库类型 这里选择hosted类型 如图

技术图片

配置仓库
该仓库指定一个唯一的名称、HTTP的端口、允许交互的API等

技术图片

连接仓库

其他机器需要连接仓库才能进行push、pull等操作

连接仓库前需要进行配置 vim /etc/docker/daemon.json

    {
    "insecure-registries": ["172.16.77.71:8082" ]
    }
    systemctl daemon-reload
    systemctl restart docker

登录仓库

docker login -u admin -p admin123 172.16.77.71:8082  #注意这里的端口是配置仓库时选择的端口号

上传镜像

docker tag nginx:latest 172.16.77.71:8082/nginx:0.1
docker push 172.16.77.71:8082/nginx:0.1

拉取镜像

docker pull 172.16.77.71:8082/nginx:0.1

搜索镜像

[root@k8s-77-40 torch]# docker search 172.16.77.71:8082/nginx
NAME                          DESCRIPTION         STARS               OFFICIAL              AUTOMATED
172.16.77.71:8082/nginx:0.1                       0

总结

到此,使用nexus搭建的docker私有仓库配置完毕。公司常用的镜像可以存放在私有仓库里 毕竟官方的dockerhub太慢

参考文档

https://help.sonatype.com/repomanager3




以上是关于nexus搭建docker镜像仓库的主要内容,如果未能解决你的问题,请参考以下文章

使用docker搭建nexus并配置docker私有仓库

使用docker搭建nexus并配置docker私有仓库

Nexus Repository Manager 搭建私有docker仓库

docker搭建maven私有仓库nexus;推送jar到私有仓库

使用 Nexus Repository Manager 搭建私有docker仓库

部署Nexus作为docker的私有仓库