[英]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.