docker安装nexus

安装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

9. nexus的配置

192.168.33.100:8081 登录

密码需要登录docker nexus

docker exec -it 容器id/容器名称 /bin/bash
cat /opt/sonatype/sonatype-work/nexus3/admin.password
原文地址:https://www.cnblogs.com/chenxingyang/p/15751152.html