07-nexus搭建docker私仓

简介: 本文介绍如何使用Nexus搭建Docker私有仓库,包括启用Docker Realm、创建Blob存储、配置docker-hosted仓库及端口设置。同时涵盖客户端镜像的导出导入、配置HTTP不安全仓库、登录认证、镜像打标与推送等完整流程,实现企业内网镜像的安全管理与分发。

使用nexus创建docker私有仓库


Nexus的安装请参考该文档:https://www.yuque.com/yzxb/jenkins/fgeqv69dg9o5bgic



Nexus配置Docker仓库步骤;


  1. nexus默认docker是失效的,需要 在security --> Realms,将docker配置成Active
  2. RepositoryBlob Store 中创建一个用于存放docker镜像的存储。内网没有S3的话,把Type配置为file就行。

S3:Simple Storage Service,简单对象存储服务,即云存储。


  1. RepositoryRepositories 中创建一个新的资源库,类型为 docker-hosted


创建的 docker-hosted资源库的相关配置:


  1. Name:指定该资源库的名称,例如就叫 docker-hosted
  2. Online:默认勾选即可
  3. HTTP与下面的HTTPS,至少需要勾选其中一个选择框,并配置一个和nexus不同的端口号,例如 8881。将来docker客户端向镜像中心上传镜像时,需要向该端口号进行上传。
  4. HTTPS:如果服务器可以开启https服务,则也可以勾选HTTPS,然后配置一个端口号,接收docker客户端上传上来的镜像。
  5. Allow anonymous docker pull:允许匿名上传,默认不勾选
  6. Enable docker V1 API:是否启用 docker早期V1版本的API,默认不勾选,即只启用V2 APIhttp://xxx.xxx.xxx.xxx:8881/v2/
  7. Blob Store:选择上面创建的docker镜像的存储
  8. Deployment Policy:是否允许重复上传同一个资源,默认允许


配置好之后,修改防火墙设置,开启刚刚配置的8881 端口:


vim /etc/sysconfig/iptables


添加:


-A INPUT -p tcp -m tcp --dport 8881 -j ACCEPT


重启iptables:


service iptables restart


docker客户端的镜像导出和导入


镜像下载和导出:


# 下载镜像
docker pull mysql:8.0.28
# 将镜像导出成本地tar文件
docker save -o mysql-8.0.28.tar mysql:8.0.28


镜像的导入:


# 将本地文件导入到docker镜像中(docker会自动解析出文件中的tag,无需手动指定)
docker load < mysql-8.0.28.tar


docker 客户端向私仓上传镜像


配置docker允许接收http请求


docker默认只接收https请求,而我们的nexus私仓如果配置的是HTTP接口的话,docker直接连会报错:


server gave HTTP response to HTTPS client


需要配置docker允许连接我们私仓的http


vim /usr/lib/systemd/system/docker.service


在其中的ExecStart 选项后面,添加 --insecure-registry {docker 私有镜像库 IP} --ipv6=false


例如:


[Service]
#  前面的-H参数可能不同,不需要管,只需在最后面加上我们的私仓地址即可:--insecure-registry 192.168.x.xxx:8881 --ipv6=false
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --insecure-registry 192.168.x.xxx:8881 --ipv6=false


然后重启docker:


# centos6 的命令
sudo chkconfig daemon-reload
sudo service docker restart
# centos7 的命令
sudo systemctl daemon-reload
sudo systemctl restart docker


也可以在/etc/docker/daemon.json 中进行配置:


{
    "insecure-reigstries":["192.168.xxx.xxx:8881"]
}


向私仓推送镜像


  1. 如果私仓不允许匿名上传镜像,则需要先进行登陆。(一般私仓都不允许匿名上传,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


  1. 将要上传的镜像重新设置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格式:
# 将mysql:8.0.28复制出一个私仓格式的Tag
# 该操作在 docker images中会多出一个复制出来的tag,但是ImageId和原始的相同
# 加个official命名空间,方便区分这个镜像是从官方镜像下载下来的,不加命名空间也可以上传
docker tag [ImageId] xxx.xxx.xxx.xxx:8881/official/mysql:8.0.28


  1. 将修改好Tag的镜像进行上传:
docker push xxx.xxx.xxx.xxx:8881/official/mysql:8.0.28


目录
相关文章
|
1月前
|
JSON 数据格式 Docker
08-Registry搭建docker私仓
Docker Registry是Docker官方提供的私有镜像仓库工具,支持本地部署。通过拉取registry镜像并运行容器,可快速搭建私服。需配置insecure-registries以支持HTTP访问,推送镜像前添加私仓地址tag,再使用docker push上传。通过curl查看镜像目录,验证上传结果,也可拉取镜像进行测试,实现镜像的集中管理与分发。
62 1
|
前端开发 Java 关系型数据库
Caché学习笔记(一、cache安装与配置)
Caché学习笔记(一、cache安装与配置)
1615 0
Caché学习笔记(一、cache安装与配置)
|
27天前
|
运维 网络协议 安全
阿里云 DNS 云解析全解析:免费版与付费版差异对比及选型指南
在域名解析服务领域,阿里云 DNS 云解析凭借全球节点覆盖与安全防护能力,成为个人开发者与企业用户的重要选择。其服务分为免费版与付费版(含个人版、企业旗舰版、尊享版),不同版本在可用性、功能完整性、安全防护等维度差异显著。本文基于 今年最新官方文档与实测数据,从功能差异、价格体系、场景适配、升级迁移等维度展开解析,为用户判断 “是否需要购买付费版” 及选型提供客观参考。
|
传感器 算法 数据处理
yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计
yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计
|
4月前
|
机器学习/深度学习 数据采集 算法
大模型微调技术综述与详细案例解读
本文是一篇理论与实践结合的综述文章,综合性全面介绍大模型微调技术。本文先介绍大模型训练的两类场景:预训练和后训练,了解业界常见的模型训练方法。在后训练介绍内容中,引出模型微调(模型微调是属于后训练的一种)。然后,通过介绍业界常见的模型微调方法,以及通过模型微调实操案例的参数优化、微调过程介绍、微调日志解读,让读者对模型微调有更加直观的了解。最后,我们详细探讨数据并行训练DDP与模型并行训练MP两类模型并行训练技术,讨论在实际项目中如何选择两类并行训练技术。
|
2月前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
1738 3
|
2月前
|
数据采集 监控 JavaScript
应对12306反爬虫机制:JS加密参数逆向分析
应对12306反爬虫机制:JS加密参数逆向分析
|
1月前
|
Java Maven 数据安全/隐私保护
06-nexus私仓环境搭建
本文详细介绍Nexus Repository Manager OSS的安装与配置,涵盖JDK环境准备、服务部署、用户创建及启动操作。指导用户搭建Maven和Docker私有仓库,实现jar包与镜像的上传下载,并配置匿名访问与本地客户端信任。支持多种仓库类型,适用于企业级制品管理。
154 0
|
1月前
|
Java Maven 数据安全/隐私保护
Nexus仓库
本文介绍了Nexus Repository Manager的Linux安装与配置,包括JDK环境搭建、OSS版下载、解压启动、仓库管理及Docker部署方式。详细说明了登录、密码重置、仓库创建、Maven/NPM/Docker私服配置与资源上传等操作,并提供常用命令与配置示例,助力高效搭建私有仓库。
170 0
|
1月前
|
关系型数据库 MySQL Docker
03-Docker下载加速 docker下载加速
本文介绍了两种Docker镜像下载加速方法:一是使用网易数帆、阿里云等镜像仓库直接拉取镜像,如通过`hub.c.163.com/library/mysql`下载MySQL;二是配置阿里云镜像加速器,修改`/etc/docker/daemon.json`文件添加加速地址,重启Docker服务后即可使用官方镜像命令快速拉取。此外,还介绍了如何为Docker配置HTTP/HTTPS代理,提升网络访问效率。
212 0

热门文章

最新文章