不要将其更改为具有不同权限的用户UID
。当您启动容器时,权限可能会被容器本身更改。您可能需要检查在这种情况下使用的 docker 映像。
所以让我们采取mysql-docker https://github.com/docker-library/mysql例如。当你启动它时,权限将被改变 https://github.com/docker-library/mysql/blob/master/8.0/docker-entrypoint.sh#L90即使对于已安装的卷也可以正常工作,否则您将面临权限问题,因为mysql
用户无法写入任何数据。
基于weblogic12c
在你的问题中标记,我注意到以下内容Dockerfile https://github.com/oracle/docker-images/blob/master/OracleWebLogic/dockerfiles/12.2.1.3/Dockerfile.generic#L70网络逻辑:
RUN chown oracle:oracle -R /u01
如果您的数据保存在容器内的同一目录中,那么可能是这样1000
代表oracle
用户在容器内,您可以检查/etc/passwd
容器内也。
So the UID
and GID
这是1000
在您的情况下代表容器内正在由容器进程使用的用户,并且因为您没有与此匹配的用户UID
它将以您所看到的数字方式显示。如果需要,您可以在主机上创建具有相同 UID 的用户。所以为了给1000
用户名和组名,您需要执行以下操作:
useradd -U -u 1000 oracle
上面的命令将创建一个名为oracle
以及由于使用而具有相同名称的组-U
UID/GID 将是1000
由于使用-u
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
接下来,如果您在主机上执行以下命令,您将得到一个结果,告诉您用户组和 uid/gid:
id oracle
uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)