nexus搭建docker私仓

简介: 本文介绍如何使用Nexus搭建Docker私有仓库。包括Nexus中启用Docker Realm、创建文件存储、配置docker-hosted仓库并开放HTTP端口(如8881),以及防火墙设置。还需配置Docker客户端信任私仓IP,通过修改daemon.json或启动参数添加insecure-registry。最后登录私仓,打标签并推送镜像。适用于CentOS 6/7系统,实现本地镜像安全管理与分发。(239字符)

使用nexus创建docker私有仓库
Nexus的安装请参考该文档:https://www.yuque.com/yzxb/jenkins/fgeqv69dg9o5bgic
Nexus配置Docker仓库步骤;
nexus默认docker是失效的,需要 在security --> Realms,将docker配置成Active
在 Repository 的 Blob Store 中创建一个用于存放docker镜像的存储。内网没有S3的话,把Type配置为file就行。
S3:Simple Storage Service,简单对象存储服务,即云存储。

在 Repository 的 Repositories 中创建一个新的资源库,类型为 docker-hosted。
创建的 docker-hosted资源库的相关配置:
Name:指定该资源库的名称,例如就叫 docker-hosted
Online:默认勾选即可
HTTP:与下面的HTTPS,至少需要勾选其中一个选择框,并配置一个和nexus不同的端口号,例如 8881。将来docker客户端向镜像中心上传镜像时,需要向该端口号进行上传。
HTTPS:如果服务器可以开启https服务,则也可以勾选HTTPS,然后配置一个端口号,接收docker客户端上传上来的镜像。
Allow anonymous docker pull:允许匿名上传,默认不勾选
Enable docker V1 API:是否启用 docker早期V1版本的API,默认不勾选,即只启用V2 API:http://xxx.xxx.xxx.xxx:8881/v2/
Blob Store:选择上面创建的docker镜像的存储
Deployment Policy:是否允许重复上传同一个资源,默认允许
配置好之后,修改防火墙设置,开启刚刚配置的8881 端口:
添加:
重启iptables:
docker客户端的镜像导出和导入
镜像下载和导出:
镜像的导入:
docker 客户端向私仓上传镜像
配置docker允许接收http请求
docker默认只接收https请求,而我们的nexus私仓如果配置的是HTTP接口的话,docker直接连会报错:
需要配置docker允许连接我们私仓的http。
在其中的ExecStart 选项后面,添加 --insecure-registry {docker 私有镜像库 IP} --ipv6=false。
例如:
然后重启docker:
Shell

centos6 的命令

sudo chkconfig daemon-reload
sudo service docker restart

centos7 的命令

sudo systemctl daemon-reload
sudo systemctl restart docker
也可以在/etc/docker/daemon.json 中进行配置:
JSON

{
"insecure-reigstries":["192.168.xxx.xxx:8881"]
}
向私仓推送镜像
如果私仓不允许匿名上传镜像,则需要先进行登陆。(一般私仓都不允许匿名上传,nexus默认匿名上传也没有勾选)

--username后面为nexus用户名,执行命令后会提示输入密码

docker login --username=admin http://192.168.xxx.xxx:8881

登录之后,会在 $HOME/.docker/config.json 中记录下登录的用户信息,之后便不需要再进行登陆操作

如果要取消登录,则只需执行以下命令

docker logout http://192.168.xxx.xxx:8881

将要上传的镜像重新设置Tag。
docker按照镜像名称区分上传的资源库。
例如:
mysql:8.0.28会被上传到docker官方dockerhub;
tengyer/helloworld:lasted会被上传到dockerhub的tengyer命名空间中;
registry.cn-hangzhou.aliyuncs.com/命名空间/镜像名称:[镜像版本号] 会上传到阿里云指定命名空间中;
ccr.ccs.tencentyun.com/命名空间/hello-world:会上传到腾讯云指定命名空间中;
hub.c.163.com/命名空间/hello-world:会上传到网易数帆指定命名空间中;
所以,我们如果要上传到我们的私仓,需要将Tag修改为xxx.xxx.xxx.xxx:8881/命名空间/mysql:5.0.27格式:
Shell

将mysql:8.0.28复制出一个私仓格式的Tag

该操作在 docker images中会多出一个复制出来的tag,但是ImageId和原始的相同

加个official命名空间,方便区分这个镜像是从官方镜像下载下来的,不加命名空间也可以上传

docker tag [ImageId] xxx.xxx.xxx.xxx:8881/official/mysql:8.0.28

将修改好Tag的镜像进行上传:

docker push xxx.xxx.xxx.xxx:8881/official/mysql:8.0.28

相关文章
|
2月前
|
缓存 Ubuntu Linux
Docker安装
本教程介绍Docker在CentOS和Ubuntu系统中的安装与配置,包括卸载旧版本、配置yum源或软件源、安装引擎、启动服务、离线安装及系统服务配置。还涵盖daemon.json参数设置、日志管理、镜像加速、命令补全等功能,助你快速部署并优化Docker环境。(238字)
|
2月前
|
关系型数据库 MySQL Shell
Docker下载加速
本文介绍Docker下载加速的两种方法:一是使用网易数帆、阿里云等镜像仓库,如`docker pull hub.c.163.com/library/mysql`;二是配置阿里云镜像加速器,通过修改`/etc/docker/daemon.json`添加加速地址,实现快速拉取官方镜像。此外,若使用代理上网,还可配置HTTP/HTTPS代理,提升镜像下载效率。
|
2月前
|
Java Maven 数据安全/隐私保护
Nexus仓库
本文介绍Nexus Repository Manager OSS在Linux环境下的安装与配置,包括JDK8环境搭建、Nexus解压启动、管理员登录、密码重置、仓库创建及Docker部署方式。涵盖Maven、Npm、Docker私仓配置,支持匿名访问、数据持久化、资源上传下载等核心功能,适用于企业级制品库管理。
|
2月前
|
Ubuntu Linux Shell
Docker镜像
镜像是包含软件运行所需代码、依赖、配置的轻量级可执行包。Docker通过联合文件系统(如AUFS、OverlayFS)实现分层架构,底层为bootfs和rootfs,镜像层只读,容器启动时添加可写容器层,实现资源隔离与高效复用,便于应用打包、分发和迁移。(238字)
|
2月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本教程介绍如何在Eclipse中配置Java Web开发环境,涵盖JDK、Tomcat安装与项目导入,支持非Maven及Maven项目。详细演示Eclipse绑定Tomcat、部署项目并启动访问,附在线考试、图书馆管理等实战案例及SSM配置讲解视频,助你快速搭建Java Web项目。
|
2月前
|
存储 Java 编译器
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,即泛型信息被移除,替换为原始类型(如Object或限定类型)。擦除后,List<String>和List<Integer>均变为List,导致反射可绕过类型限制。类型检查发生在编译期,针对引用而非对象本身。获取泛型值时自动强转,避免手动转换。但擦除也引发多态冲突、静态成员限制、instanceof失效等问题,需通过桥方法等机制解决。基本类型不可作为泛型参数,静态上下文中的泛型使用也受约束。
|
2月前
|
存储 Ubuntu Shell
容器命令
通过Docker可创建交互式或守护式容器,支持端口映射、环境变量设置及数据卷挂载。使用`-it`启动交互容器,`-d`后台运行;`-v`实现目录共享,`--privileged=true`解决权限问题。容器可提交为新镜像,支持日志查看、进程进入、文件拷贝及导入导出操作,数据卷实现持久化与容器间共享。
|
2月前
|
存储 缓存 安全
One Trick Per Day
初始化Map应避免直接指定大小,建议用Guava或手动计算容量;禁用Executors创建线程池,防止OOM,推荐自定义ThreadPoolExecutor;Arrays.asList返回不可变列表,禁止修改操作;遍历Map优先使用entrySet或forEach;SimpleDateFormat非线程安全,建议用ThreadLocal或Java8新时间API;并发修改记录需加锁,推荐乐观锁配合version机制。
|
2月前
|
运维 Kubernetes Java
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,帮助理解分布式系统的网络架构与部署方案,是开发与运维协作的重要工具。
|
2月前
|
数据采集 领域建模 数据库
领域模型图(数据架构/ER图)
数据架构核心输出为ER图,包含实体、关系与属性。通过四色原型法进行领域建模:红色MI表时标事件,绿色PPT为业务对象,黄色Role示参与角色,蓝色DESC提供描述信息。以风控系统为例,从业务流程提炼MI骨架,逐步补充PPT、Role与DESC,最终提取出ER图,明确实体间一对一、一对多或多对多关系,指导数据模型设计。(239字)