Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何为AmazonLinux2安装标准系统命令_Docker_Amazon Linux - Fatal编程技术网

Docker 如何为AmazonLinux2安装标准系统命令

Docker 如何为AmazonLinux2安装标准系统命令,docker,amazon-linux,Docker,Amazon Linux,我似乎缺少了一些非常基本的实用程序,即sudo和sudo命令。我如何安装这些,或者更好的是有一个ami linux映像,它预先安装了所有这些东西 Dockerfile: FROM amazonlinux:2.0.20190823.1-with-sources RUN echo $(which sudo) 错误: /bin/sh:which:未找到命令 或者如果我只是尝试使用sudo yum之类的东西 /bin/sh:sudo:未找到命令 由于它似乎是相关的,我似乎也没有根权限,因为尝试使用ad

我似乎缺少了一些非常基本的实用程序,即sudo和sudo命令。我如何安装这些,或者更好的是有一个ami linux映像,它预先安装了所有这些东西

Dockerfile:

FROM amazonlinux:2.0.20190823.1-with-sources
RUN echo $(which sudo)
错误:

/bin/sh:which:未找到命令

或者如果我只是尝试使用sudo yum之类的东西

/bin/sh:sudo:未找到命令

由于它似乎是相关的,我似乎也没有根权限,因为尝试使用adduser命令会给我一个非零响应代码2。

运行yum update&&yum install-y sudo,默认情况下该映像中不会安装sudo。您已经是该图像的根用户,因此不需要sudo-yum


默认情况下不安装太多软件包的想法是让映像尽可能小,让用户安装所需的内容

运行yum update&&yum install-y sudo,默认情况下该映像中不安装sudo。你已经植根于这些图像,所以你不需要sudo yumThanks,这对我来说太疯狂了。没有意识到您只是使用yum来安装这些常规命令。我现在觉得有点傻。把它放到答案中,我会把它标记为正确的@LinPyYou在Docker中几乎不需要sudo。容器通常作为前台作业运行单个进程,无需用户干预,因此容器中通常不需要交互式shell,如果需要,您可以始终将docker exec-u 0作为root。我需要sudo用于sudo-u,而不是root权限。在我的例子中,我经常使用docker容器作为cli,因为它安装了命令行所需的一切。大量在后台运行,并且经常是交互式的。我还需要sudo,因为prod在一些脚本中使用sudo,这些脚本需要在我的本地运行。运行yum-y update&&yum install-y sudo对我有效。