gpt4 book ai didi

image - Docker 镜像 - 将用户添加到组

转载 作者:行者123 更新时间:2023-12-05 06:14:32 26 4
gpt4 key购买 nike

我有一个自定义的 docker 镜像,已经构建好了。没有可用的 Dockerfile。在容器内部,可以使用自定义用户,而不是 root,比如 test。此用户已附加到组 test。这是容器的默认用户。

我尝试使用上述基本图像构建我自己的图像,并将用户 test 也添加到 workers 组。如何做到这一点?

使用我知道的已知命令(useradd、addgroup、usermod)没有帮助。在容器内 docker exec 之后,命令 id 只返回一组(test)。

也无法使用 anotheruser:workers/770 权限访问安装到容器的文件。

有机会做这个吗?

最佳答案

过程:

修改当前图像以将更改合并到新图像的过程的简要概述如下:

  1. 使用当前图像和您要修改的更改创建一个 Dockerfile
  2. 执行docker build命令从Dockerfile中剪切出一个新的镜像
  3. 用新图像的名称(“标签”)更新您的 docker-compose.yml 文件的 image: 指令

一个简单的实例:

在与 docker-compose.yml 文件相同的目录中创建一个 Dockerfile:

FROM zabbix/zabbix-agent2:ubuntu-6.0-latest
USER root
RUN groupadd -r docker -g 998 && usermod -aG docker zabbix

包含您当前使用的图像的原始 docker-compose.yml 文件:

version: '3.5'
services:
zabbix-agent:
image: zabbix/zabbix-agent2:ubuntu-6.0-latest

<SNIP>

-t开关执行docker build命令,给它起一个好记的名字:

docker build -t zabbix/zabbix-agent2:ubuntu-6.0-latest-dockerfix --no-cache . -f Dockerfile-ZabbixAgent2

然后我们根据 Dockercompose 文件中的更改,将 docker-compose.yml 文件中的原始图像名称更改为新图像的标签。

注释掉基本图像的名称并在其下方附加新标签:

version: '3.5'
services:
zabbix-agent:
#image: zabbix/zabbix-agent2:ubuntu-6.0-latest
image: zabbix/zabbix-agent2:ubuntu-6.0-latest-dockerfix
<SNIP>

当您现在启动容器时,您会看到通过 Dockerfile 中的 RUN 命令对您的用户和组所做的新更改。

可以找到一个非常的详细示例HERE如果您需要更多上下文。

希望这有帮助-

关于image - Docker 镜像 - 将用户添加到组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62841011/

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