在Nexus Docker中挂载主机目录时出错。

6

我正在使用以下命令来运行我的容器

docker run -d -p 9001:8081 --name nexus -v /Users/user.name/dockerVolume/nexus:/nexus-data sonatype/nexus3

容器启动后立即失败,并显示以下日志

mkdir: 无法创建目录“../sonatype-work/nexus3/log”: 拒绝访问

mkdir: 无法创建目录“../sonatype-work/nexus3/tmp”: 拒绝访问

Java HotSpot(TM) 64-Bit Server VM 警告:由于没有此类文件或目录,因此无法打开文件../sonatype-work/nexus3/log/jvm.log

我按照链接进行设置,已将所述权限授予nexus目录。

我还尝试了以下SO链接,但这也没有帮助我。 我仍然收到相同的错误消息。

Docker版本为17.12.0-ce-mac47(21805)

[编辑] 我确实更改了主机上我的nexus文件夹的所有权

sudo chown -R 200 ~/dockerVolume/nexus

请提供Dockerfile文件,不要只分享链接。 - Shahriar
这是从Docker Hub上拉取的,我没有访问Dockerfile的权限,他们也没有从GitHub上添加它。我进行了快速检查以找出原因,但未能成功。我正在使用docker pull sonatype/nexus3 - Anunay
4个回答

17

在我的Ubuntu服务器上,我需要执行以下操作:

chown -R 200:200 path/to/directory

不仅200,而且200:200


1
升级3.37到3.41后,我遇到了同样的问题。在那之前,它是使用root组工作的。这解决了我的问题。 - Mert Ülkgün

14

如果您在 Kubernetes 集群中运行 Nexus3 时遇到此问题,应该使用 initContainers 设置 UID。只需将其添加到您的 spec 中:

initContainers:
- name: volume-mount-hack
  image: busybox
  command: ["sh", "-c", "chown -R 200:200 /nexus-data"]
  volumeMounts:
  - name: <your nexus pvc volume name>
    mountPath: /nexus-data

1

sonatype/docker-nexus3仓库中,可以找到Dockerfile

挂载卷的方法已经记录在案

将主机目录挂载为卷。

这种方式不具备可移植性,因为它依赖于主机上存在具有正确权限的目录。然而,在某些情况下,将此卷分配给特定的底层存储可能非常有用。

$ mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data
$ docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

所以在运行docker之前,不要忘记做以下事情:
chown -R 200 /Users/user.name/dockerVolume/nexus

我已经进行了这些更改,但仍然出现错误。此外,我在SO上查找并找到了一篇帖子(我已列出),其中id nexus仅给出了uid为200。 - Anunay
@Anunay 然后切换到推荐的方法,并创建数据卷:https://docs.docker.com/engine/admin/volumes/volumes/#create-and-manage-volumes - VonC
或者尝试创建一个扩展的Dockerfile,并使用它添加所需的权限。 - vivekyad4v
也会尝试一下。谢谢。 - Anunay

0

输入图像描述

Nexus Repository默认将其数据存储在/sonatype-work目录中(查看此链接)

因此,尝试使用/sonatype-work而不是/nexus-data,例如:

docker run -p 8081:8081 -v /data/nexus:/sonatype-work --name nexus -d sonatype/nexus3


嗨,使用图像来展示代码/错误会引发许多问题。请阅读为什么我不应该上传代码/数据/错误的图片?。谢谢。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接