gpt4 book ai didi

docker - 在 GCP 启动脚本期间查找用户名

转载 作者:行者123 更新时间:2023-12-02 21:04:42 25 4
gpt4 key购买 nike

我正在使用他们的 python API 启动一个 GCP 实例,我正在通过启动脚本安装 docker 和其他包。问题是启动脚本以 root 身份运行,随后我只能运行 docker作为根。理想情况下,我想将用户添加到 docker 组中,这样它就可以在不调用 sudo 的情况下运行 docker .

问题是我不记得在创建实例时指定任何用户名,这取决于我如何 ssh进入实例(无论我让 GCP 管理 ssh key 还是使用我上传的 key ),我都会得到不同的用户名。

所以,我想知道是否有办法找出哪些用户可以连接到这个实例并将它们添加到启动脚本中的 docker 用户组?

最佳答案

根据您通过 SSH 连接到 Compute Engine 的方式,系统会为您创建 SSH key 。这也创建了一个 Linux 帐户。此帐户的配置(例如,新帐户应属于哪些组)在名为 /etc/default/instance_configs.cfg 的文件中定义。 .如果您编辑该文件,您会发现一个条目如下:

[Accounts]
...
groups = adm,dip,docker,lxd,plugdev,video
...

这是创建帐户时添加用户的组列表。您专门询问是否将用户添加到 docker组,您可能会惊讶地看到 docker默认情况下已在列表中。然后您可能想知道“为什么我的用户不是 docker 组的成员?”。

我猜你已经创建了一个计算引擎,然后登录并安装了 docker 包。在这里暂停。您第一次登录时,那是创建帐户的时间,那是用户被添加到组的时间。但是,在初始登录时,尚未安装 docker,因此尚未创建 docker 组,因此无法将用户添加到不存在的组中。

作为测试,请尝试以下操作。

在 Cloud Shell 中,运行:
gcloud compute ssh bob@[YOUR_INSTANCE] --zone=[ZONE]

这将创建一个新身份 (bob) 并以 bob 的身份登录。 .运行 id命令,现在让我们看看您是哪些组的成员。

关于docker - 在 GCP 启动脚本期间查找用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58789945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com