繁体   English   中英

在远程服务器上启动 Docker 容器时用户/组权限更改

[英]User/group permissions change when launching Docker container on remote server

我正在尝试使用远程服务器在 Docker 上运行实验。 问题是我有脚本可以主动修改 Docker 容器中的配置文件来运行实验,只有拥有文件的用户/组才能这样做(我在远程服务器上没有 root 访问权限)。

在我的本地系统上,在不启动 docker 容器的情况下访问时,用户/组权限是我的个人用户。 一旦 docker 容器启动,用户/组就会通过配置更改为alice / alice ,如 Dockerfile 中所示。 但在远程服务器上,即使在 docker 容器中启动后,它仍显示为 root / root。 有什么建议么?

在我为 Docker 构建/运行 shell 脚本中,我有以下几行:

.
.
.
CURR_UID=$(id -u)
CURR_GID=$(id -g)

RUN_OPT="-u $CURR_UID:$CURR_GID --net=host --env DISPLAY=$DISPLAY \
--volume $XAUTHORITY:/home/alice/.Xauthority \
--volume /tmp/.X11-unix:/tmp/.X11-unix \
--privileged $MOUNT_DEVEL $MOUNT_LEARN \
--shm-size $SHM_SIZE $GPU_OPT $CONT_NAME \
-it $DETACH --rm $IMAGE_NAME:latest"

docker run $RUN_OPT
.
.
.

运行选项 -u $CURR_UID:$CURR_GID 应该将用户/组权限设置为当前正在运行它的任何用户/组。 在我的Dockerfile 中

.
.
.
# Working user
RUN groupadd --gid ${GROUP_ID} alice && \
    useradd -m -s /bin/bash -u ${USER_ID} -g ${GROUP_ID} alice && \
    echo "alice:alice" | chpasswd && adduser alice sudo
.
.
.

如果需要,我可以提供更多信息,我真的只需要任何帮助。 一直在这几天。 请指教。 谢谢你。

在您的 docker 容器中,您可以使用指令设置有效用户:

USER alice

它记录在这里: https://docs.docker.com/engine/reference/builder/#user

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM