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镜像仓库的主要内容,如果未能解决你的问题,请参考以下文章
Nexus Repository Manager 搭建私有docker仓库
docker搭建maven私有仓库nexus;推送jar到私有仓库