rah*_*606 5 containers image docker
我有一个已经构建的自定义 Docker 映像。没有可用的 Dockerfile。在容器内部,可以使用自定义用户(例如test )而不是 root 。该用户已加入组test。这是容器的默认用户。
我尝试使用上述基础映像构建自己的映像,并将用户测试添加到组工作人员中。这个怎么做?
使用我所知道的已知命令(useradd、addgroup、usermod)没有帮助。在容器内执行docker exec后,命令id仅返回一组(测试)。
另外,无法使用anotheruser:workers / 770权限访问安装到容器的文件。
有机会这样做吗?
修改当前图像以将更改合并到新图像中的过程的简要概述如下:
Dockerfile使用当前图像和您的更改创建一个以修改它docker build命令从Dockerfile中切出新镜像docker-compose.yml文件的指令image:Dockerfile在与您的文件相同的目录中创建一个docker-compose.yml:
FROM zabbix/zabbix-agent2:ubuntu-6.0-latest
USER root
RUN groupadd -r docker -g 998 && usermod -aG docker zabbix
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml包含您当前使用的图像的原始文件:
version: '3.5'
services:
zabbix-agent:
image: zabbix/zabbix-agent2:ubuntu-6.0-latest
<SNIP>
Run Code Online (Sandbox Code Playgroud)
使用开关执行docker build命令,-t为其指定一个容易记住的名称:
docker build -t zabbix/zabbix-agent2:ubuntu-6.0-latest-dockerfix --no-cache . -f Dockerfile-ZabbixAgent2
Run Code Online (Sandbox Code Playgroud)
然后,我们根据 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>
Run Code Online (Sandbox Code Playgroud)
当您现在启动容器时,您将看到RUNDockerfile 中的命令对用户和组的新更改。
如果您需要更多上下文,可以在此处找到非常详细的示例。
希望这可以帮助-
| 归档时间: |
|
| 查看次数: |
2701 次 |
| 最近记录: |