我正在使用以下命令来运行我的容器
docker run -d -p 9001:8081 --name nexus -v /Users/user.name/dockerVolume/nexus:/nexus-data sonatype/nexus3
Run Code Online (Sandbox Code Playgroud)
容器启动并立即失败。使用以下日志
mkdir:无法创建目录“../sonatype-work/nexus3/log”:权限被拒绝
mkdir:无法创建目录“../sonatype-work/nexus3/tmp”:权限被拒绝
Java HotSpot(TM) 64 位服务器 VM 警告:无法打开文件 ../sonatype-work/nexus3/log/jvm.log 由于没有这样的文件或目录
我正在按照此链接进行设置,我已授予对 nexus 目录的上述权限。
我也尝试了以下SO 链接,但这也没有帮助我。我仍然遇到同样的错误。
Docker 版本 17.12.0-ce-mac47 (21805)
[编辑] 我确实对主机上的 nexus 文件夹的所有权进行了更改
sudo chown -R 200 ~/dockerVolume/nexus
Run Code Online (Sandbox Code Playgroud)
在我的 ubuntu 服务器中,我必须执行:
chown -R 200:200 path/to/directory
Run Code Online (Sandbox Code Playgroud)
不仅是 200,而且是200:200
小智 6
如果你有这个问题试图运行Kubernetes集群Nexus3里面,你应该设置UID initContainers。只需将其添加到您的规范中:
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
Run Code Online (Sandbox Code Playgroud)
该Dockerfile在 repo 中可用sonatype/docker-nexus3。
安装卷记录为:
将主机目录装载为卷。
这是不可移植的,因为它依赖于主机上具有正确权限的现有目录。但是,在需要将该卷分配给某些特定底层存储的某些情况下,它可能很有用。
$ 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
Run Code Online (Sandbox Code Playgroud)
所以不要忘记在你之前做docker run:
chown -R 200 /Users/user.name/dockerVolume/nexus
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7650 次 |
| 最近记录: |