安装nexus作为maven的私服,当然实际是可以不使用docker安装的,本身二进制进行安装也非常简单
1. 查看 nexus 镜像
sudo docker search nexus
docker官网:Docker Hub,可以搜索具体有哪些版本,安装时可指定版本
2. 下载镜像
我直接下载了看到的最新版本
sudo docker pull sonatype/nexus3:3.37.3
3. 查看已存在的镜像
docker images
4. 新建用户
使用一个专门的用户作为docker内的执行用户
下面是创建了一个 docker 用户并加入 docker 组,我在创建 docker 用户时发现已经存在了 docker 组,创建 docker 用户必须要加入这个组才能创建(或者加入其他组?)
后面发现了个问题,在创建容器时指定这个用户启动过程会报错权限不足,因此没用了
sudo adduser docker -g docker
5. 创建数据目录
这个目录保存着 nexus 的各种数据,当删除容器、镜像后,可以取出这个目录打包,下一次安装的 nexus 的数据目录指向这个目录,其内数据(下载的包、权限等)还可以使用
使用docker用户执行
docker目录是docker的用户目录
mkdir -p /home/docker/nexus/nexus-data
6. 创建 nexus 容器
【错误命令】这里有问题,指定用户执行发现启动总是报错没有权限,不知道是为啥,搞了半天不行,倒是发现了 docker 命令的执行,要么使用 root 用户,要么这个用户在 docker 组内,因此上面创建的 docker 用户可以不用 sudo 执行 docker 命令
docker run \ -u 1001:995 \ -p 8081:8081 \ -v /home/docker/nexus/nexus-data:/var/nexus-data \ -v /etc/localtime:/etc/localtime:ro \ --name nexus3 \ --restart=always \ -d sonatype/nexus3:3.37.3 # -u 指定启动用户 # -p 端口映射, 前者宿主机, 后者容器 # -v 本地目录和 docker 容器内目录的映射. 两个一个是映射数据目录, 一个映射时区文件. ro 只读 # --name 指定创建后的容器名称 # --restart=always docker 启动/重启时, 此容器默认跟着启动 # -d 后台运行 # sonatype/nexus3:3.37.3 镜像名称 + tag # 注意, -u 原来直接使用 docker 名称来指定, 发现报错, 需要使用 uid 指定, cat cat /etc/passwd 输出的第二个冒号后的那个数字
创建后自动启动了
这里是正确的,不指定用户能启动
docker run \ -p 8081:8081 \ -v /home/docker/nexus/nexus-data:/var/nexus-data \ -v /etc/localtime:/etc/localtime:ro \ --name nexus3 \ --restart=always \ -d sonatype/nexus3:3.37.3
7. 查看启动日志
docker logs 容器名称/容器id
8. nexus的配置