日志.Docker 搭建 Nexus 仓库私服

本文最后更新于:2021年8月22日 下午

准备

  1. Docker
  2. Nexus 镜像

拉取和启动 Nexus

1. 拉取镜像

1
docker pull sonatype/nexus3

2. 启动

1
2
3
4
5
/*
* -d 后台运行
* -p 指定端口映射:主机(宿主)端口:容器端口
*/
docker run -d -p 8081:8081 sonatype/nexus3

这里的启动是暂时的,无法保存设置等(设置的代理仓库,密码),stop 后再重新启动就会像第一次打开一样

1
2
3
4
5
6
7
8
# 数据持久化操作
# 1. 创建数据卷
docker volume create --name nexus-data

# 2. 在启动容器的时候绑定数据卷
# --name 命名容器,方便下次指定启动(直接:docker start nexus)
# -v 绑定数据卷
docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3

3. 获取登录密码

Nexus 从 3.x 开始,密码不再固定,而是设备生成并保存在 admin.password 文件

1
2
3
4
5
6
7
8
# 执行命令进入一个交互的终端页面
docker exec -it 容器id bash

# 进入 Nexus 的数据目录
cd /nexus-data/

# 查看密码
vi admin.password

不要通过 exit 或者 ctrl+d 退出交互,这样会连带着 容器 一并 stop

快捷键退出交互:ctrl + p + q

然后稍等一会,直接访问:**http://localhost:8081/**,就可以使用了

账号:admin

密码:admin.password 的文本内容

4. 后续使用

如果是长久使用的,建议一开始就直接

  1. 绑定数据卷启动,不然数据不会得到存储,每次启动都是个新的仓库(需要重新设置密码,代理仓库等)
  2. 容器启动时指定 name
  3. 轻轻松松执行
    docker run name
  4. 如果是 Docker Hub 还可以界面操作启动
    Docker Hub 容器目录

代理且使用仓库

为了方便使用,建议打开 “匿名访问服务器” 选项
不然每次拉取仓库文件都需要配置个 “密码”
Nexus 匿名访问服务器

仓库分类

Nexus 仓库类型

分类 说明
group 仓库组合,多个仓库组合为一个地址提供服务
hosted 本地仓库,像官方仓库一样提供本地私有仓库功能
proxy 代理其他仓库

创建仓库

注:以下教程是按照本人开发环境设置写录,请根据需要参考修改

需要代理的仓库

仓库名 类型 阿里源 源地址 说明
android group 聚合仓
google proxy https://maven.aliyun.com/repository/google https://maven.google.com/
central proxy https://maven.aliyun.com/repository/central https://repo1.maven.org/maven2/
jcenter proxy https://maven.aliyun.com/repository/public http://jcenter.bintray.com/
public proxy https://maven.aliyun.com/repository/public central仓和 jcenter 仓的聚合仓

配置

我的仓库配置

备份数据

直接备份数据卷即可。
可以参考:日志.Docker 关于备份的一些小事