Ant*_*ony 2 permissions docker minio
当我启动 docker 容器时,我遇到了 minio 问题,这是我的错误:
19:32:16.16 INFO ==> ** 启动 MinIO 设置 **
/opt/bitnami/scripts/libminio.sh:第 324 行:/data/.root_user:权限被拒绝
在 windows 上可以,但在 linux 上不行
这是我的 docker-compose 设置:
container_name: minio
image: "bitnami/minio:latest"
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ACCESS_KEY=${ACCESS_KEY}
- MINIO_SECRET_KEY=${SECRET_KEY}
- MINIO_DEFAULT_BUCKETS=${BUCKET}
volumes:
- ./docker-volumes/s3-data:/data
networks:
- proxy
Run Code Online (Sandbox Code Playgroud)
您正在将目录绑定安装./docker-volumes/s3-data到容器中。最初这个目录不存在,所以 Docker 以 root 身份创建它。这意味着/data容器内的目录归 root 所有。
不幸的是,容器内部minio以用户身份运行1001,因此它没有足够的权限在内部创建文件(或目录)/data。
如果您使用命名的 docker 卷而不是绑定安装主机目录,如下所示:
version: "3"
services:
minio:
container_name: minio
image: "bitnami/minio:latest"
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ACCESS_KEY=${ACCESS_KEY}
- MINIO_SECRET_KEY=${SECRET_KEY}
- MINIO_DEFAULT_BUCKETS=${BUCKET}
volumes:
- minio_data:/data
volumes:
minio_data:
Run Code Online (Sandbox Code Playgroud)
然后 Docker 会将卷的所有者和权限设置为您要挂载该卷的目录的权限。在bitnami/minio图像中,/data看起来像:
[lars@docker work]$ docker run -it --rm bitnami/minio:latest ls -ld /data
[...]
drwxrwxr-x. 2 root root 6 May 22 00:55 /data
Run Code Online (Sandbox Code Playgroud)
也就是说,它可由 userroot和 group写入root。minio 容器以 UID 1001 和 group 运行root,因此它能够写入该目录。
当然,您可以显式地预先创建docker-volumes/s3-data
目录,然后将其 chown 到适当的用户 ID:
sudo chown 1001 docker-volumes/s3-data
Run Code Online (Sandbox Code Playgroud)
但一般来说,除非有原因需要使用特定的主机目录,否则使用解决方案 1 中的命名 Docker 卷将更易于管理(因为您不需要提前知道容器用户 ID,并且因为您最终不会在主目录中看到非您用户 ID 拥有的文件)。
| 归档时间: |
|
| 查看次数: |
23946 次 |
| 最近记录: |