通常,docker 容器使用用户 root 运行。我想使用不同的用户,使用 docker 的 USER 指令没问题。但是这个用户应该能够在容器内使用 sudo 。缺少此命令。
这是一个用于此目的的简单 Dockerfile:
FROM ubuntu:12.04
RUN useradd docker && echo "docker:docker" | chpasswd
RUN mkdir -p /home/docker && chown -R docker:docker /home/docker
USER docker
CMD /bin/bash
运行这个容器,我使用用户 ‘docker’ 登录。当我尝试使用 sudo 时,找不到该命令。所以我尝试使用在我的 Dockerfile 中安装 sudo 包
RUN apt-get install sudo
这导致 Unable to locate package sudo
原文由 drubb 发布,翻译遵循 CC BY-SA 4.0 许可协议
刚刚得到它。正如 regan 所指出的,我必须将用户添加到 sudoers 组。但主要原因是我忘记更新存储库缓存,所以 apt-get 找不到 sudo 包。它现在正在工作。这是完成的代码: