小编Bla*_*ire的帖子

允许 Docker 容器和主机用户在绑定安装的主机目录上写入

感谢任何来源的任何帮助。
服务器有一个带有 alpine、nginx、php 的 Docker 容器。仅当我将“chown -R无人目录”设置为主机目录(没有人是容器中的用户)时,该容器才能够在绑定安装的主机目录中写入。我正在使用 VSCode 的扩展“Remote - SSH”以 ubuntu 用户身份连接到服务器。仅当我设置“chown -R ubuntu目录”时,VSCode才能够编辑同一主机目录中的文件(用于绑定安装)。

问题:如果我设置“ubuntu”为所有者,容器无法写入(使用php写入),如果我设置“nobody”为所有者,VSCode SSH无法写入。我正在寻找一种方法,允许两者都可以在不一次又一次更改目录所有者用户的情况下进行写入,或者类似的轻松。

使用的图像: https: //hub.docker.com/r/trafex/php-nginx

我尝试过的:
在容器中,我将用户“nobody”添加到组“ubuntu”中。在主机上,目录(用作挂载)设置为“sudo chown -R ubuntu:ubuntu 目录”,用户“ubuntu”已添加到组“ubuntu”中。
VSCode 进行了编辑,容器无法编辑。(编辑:它有效,我更改了该组的目录权限以允许写入)

编辑:已经在没有 Dockerfile 的情况下创建的容器也运行了,并且可能进行了重要更改的编辑,所以也许我无法使用 Dockerfile 或 entrypoint.sh 方式来解决问题。是否可以通过在容器内运行命令来实现,或者不需要再次创建容器?该容器可以被停止。

编辑:我想知道,在 Triet Doan 的回答中,一个选项是修改容器中已创建用户的 UID 和 GID,为用户和组“nobody”执行此操作会导致容器内出现任何问题,我想知道,因为可能许多设置命令已在容器内执行,文件已由 php 在安装目录上编辑,并且容器已运行数天

编辑:我发现 alpine 没有 usermod 和 groupmod。

ubuntu docker visual-studio-code docker-volume vscode-remote

5
推荐指数
2
解决办法
3767
查看次数