Docker 卷和主机权限

n1_*_*n1_ 5 docker docker-volume

当我运行 docker 镜像时,例如

docker run -v /home/n1/workspace:/root/workspace -it rust:latest bash
Run Code Online (Sandbox Code Playgroud)

我在容器中创建一个目录,例如

mkdir /root/workspace/test
Run Code Online (Sandbox Code Playgroud)

它由我的主机上的 root 拥有。这导致我每次关闭容器后都必须更改权限才能操作该目录。

有没有办法告诉 Docker 在某个用户下从我的机器(主机)角度处理目录和文件?

gra*_*pes 1

当然可以,因为作为默认用户Docker使用。root您应该在 docker 容器中创建用户,切换到该用户,然后创建文件夹,然后您将在主机上无需 root 权限即可获得它们。

Dockerfile

FROM rust:latest
...
RUN useradd -ms /bin/bash myuser
USER myuser
Run Code Online (Sandbox Code Playgroud)