创建卷的 Docker 容器后,本地主机上的权限更改为 1000

2024-03-11

我的容器使用外部卷创建后,权限变为1000。

drwxr-x--- 71000 10004096 三月 02 01:13 my_domain

每次我需要更改它我的用户。 AS docker 由 root 用户安装。 我怎样才能避免这种情况? 有人可以写点什么吗?


不要将其更改为具有不同权限的用户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以及由于使用而具有相同名称的组-UUID/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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建卷的 Docker 容器后,本地主机上的权限更改为 1000 的相关文章

随机推荐