运维|devops|docker|docker私有仓库搭建(nexus)

运维|devops|docker|docker私有仓库搭建(nexus)

📑 目录

1. 运维|devops|docker|docker私有仓库搭建(nexus)

1.1 主流仓库比较

1.2 如果Nexus基于docker部署

1.2.1 重装

1.3 Sonatype Nexus 开启docker

1.3.1 激活 Docker Bearer Token Realm

1.3.2 创建 Docker 专用的 Blob 存储

1.3.3 创建 Docker Hosted 仓库

1.3.4 验证是否开启

1.4 打通docker和仓库

1.4.1 增加如下配置

1.4.2 重启docker

1.4.3 验证配置是否生效

1.4.4 登录

1.5 推送测试镜像

1.6 拉取测试镜像

1.7 Nexus Web

基于Nexus 3.93 社区版(Community Edition)

主流仓库比较

方案核心优势局限性适用场景
Docker Registry部署极其简单,资源占用少功能单一,无UI界面,无用户管理个人学习、小型测试环境
Harbor功能强大:支持RBAC权限、漏洞扫描、镜像复制、Web UI部署稍复杂,占用资源较多中大型企业生产环境首选
Sonatype Nexus一个工具管理所有构建产物(如 Maven, npm, Docker)Docker 仓库功能相对基础团队已使用 Nexus 管理其他依赖

如果Nexus基于docker部署

需要卸载重装,开发8881端口(密码和存储数据会丢失)

重装

bash

docker commit nexus my-nexus-with-data docker stop nexus docker rm nexus docker run -d \ --name nexus \ -p 8082:8081 \ -p 8881:8881 \ my-nexus-with-data

Sonatype Nexus 开启docker

激活 Docker Bearer Token Realm

创建 Docker 专用的 Blob 存储

>docker-blob

创建 Docker Hosted 仓库

docker-hosted

验证是否开启

  • docker 内部验证

bash

docker exec -it nexus sh wget -qO- http://localhost:8881/v2/

  • 其他服务器验证

bash

curl -v http://192.168.0.68:8881/v2/

打通docker和仓库

sudo nano /etc/docker/daemon.json

增加如下配置

json

{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn" ], "insecure-registries": ["192.168.0.68:8881"] }

重启docker

bash

sudo systemctl daemon-reload sudo systemctl restart docker

验证配置是否生效

bash

docker info | grep -A 2 "Insecure Registries"

登录

docker login 192.168.0.68:8881(使用nexus用户名和密码)

推送测试镜像

bash

# 拉取测试镜像 docker pull nginx:alpine # 打标签 docker tag nginx:alpine 192.168.0.68:8881/nginx:alpine # 推送 docker push 192.168.0.68:8881/nginx:alpine

拉取测试镜像

bash

# 删除本地镜像 docker rmi 192.168.0.68:8881/nginx:alpine # 从私有仓库拉取 docker pull 192.168.0.68:8881/nginx:alpine

Nexus Web