【发布时间】:2020-01-15 03:44:10
【问题描述】:
我似乎缺少一些非常基本的实用程序,即命令sudo 和which 似乎缺少。我该如何安装这些,或者更好的是有一个预先安装了所有这些东西的 ami linux 映像。
Dockerfile:
FROM amazonlinux:2.0.20190823.1-with-sources
RUN echo $(which sudo)
错误:
/bin/sh: which: command not found
或者如果我只是尝试使用 sudo yum 之类的东西
/bin/sh: sudo: command not found
由于它似乎相关,我似乎也没有 root 权限,因为尝试使用 adduser 命令给了我一个非零响应代码 2。
【问题讨论】:
-
RUN yum update && yum install -y sudo,默认情况下,该映像中未安装 sudo。您已经是该图像的根,因此您不需要 sudo yum -
谢谢,这对我来说太疯狂了。没有意识到您只是使用 yum 来安装这些常规命令。我现在觉得有点傻。将其弹出到答案中,我会将其标记为正确@LinPy
-
在 Docker 中你几乎不需要
sudo。容器通常会在没有用户干预的情况下将某个单个进程作为前台作业运行,因此您通常不需要容器中的交互式 shell,如果需要,您始终可以docker exec -u 0成为 root。 -
我需要 sudo 来获得 sudo -u,而不是 root 权限。同样在我的情况下,我经常使用 docker 容器作为 cli,因为它安装了命令行所需的一切。大量在后台运行,并且通常是交互式的。我还需要 sudo,因为 prod 在某些脚本中使用 sudo,这些相同的脚本需要在我的本地运行。
标签: docker amazon-linux