Nexus Docker容器安装后不停重启:cannot create directory '../sonatype-work/nexus3/log': Permission denied

问题背景

按照Nexus官方文档创建Nexus docker容器作为私有docker镜像,结果在启动以后一直在不停重启。

docker logs命令查看时发现错误:

cannot create directory '../sonatype-work/nexus3/log': Permission denied

解决方法

这是因为Nexus docker镜像使用的用户id是200,需要有映射到容器中/nexus-data目录的本地的权限。

最简单的方式就是将这个目录的所有权修改为200。

sudo chown -R 200 <本地nexus-data目录>

例如本地目录是 /data/nexus-data,则

sudo chown -R 200 /data/nexus-data

参考文献

其实官方文档 https://hub.docker.com/r/sonatype/nexus3/ 很详细介绍了持久化数据的两种做法:

  • 1). 使用docker创建volume
$ docker volume create --name nexus-data
$ docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
  • 2). 手动挂载volume,这时需要设置权限
$ 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