当运行Dockerfile时出现“/bin/sh:1:sudo:未找到”错误

46

这是我的 Dockerfile 的内容。

FROM ubuntu

RUN sudo apt-get update

RUN sudo apt-get install -y wget

CMD wget -O- -q http://ifconfig.me/ip

当我运行Dockerfile来构建一个Docker镜像时,出现以下错误:

/bin/sh: 1: sudo: 找不到命令

请问您能帮助我解决上述问题吗?


1
可能是如何在Docker容器内使用sudo?的重复问题。 - yeputons
$ docker run -it ubuntu 然后在容器内部 # su - Abhishek D K
2
从Dockerfile中删除sudo - Abhishek D K
从dockerfile中删除SUDO后,我遇到了一个新的错误E:无法找到wget软件包。 - mspms
@yeputons 我不会说这是 如何在 Docker 容器内使用 sudo? 的重复,因为它没有提到错误消息,而且这里的问题答案已经是那里问题的第一句话了。 - questionto42
对于大型的Dockerfile文件,请确保不要分配/更改USER变量。这将使所有后续命令都以该用户而不是root运行。 - rob
3个回答

52

默认情况下,Docker容器以root用户身份运行
Dockerfile删除sudo并重新运行。

enter image description here


3
好的,请提供需要翻译的原文。 - Abhishek D K
这应该可以帮助您解决Docker守护程序权限相关的问题:https://www.digitalocean.com/community/questions/how-to-fix-docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket - Abhishek D K

13
您在 Dockerfile 中的命令在 docker build 过程中已经以 root 用户身份运行。因此,您不需要使用 sudo

7
在这种情况下,您不需要sudo。将Dockerfile更改如下 -
FROM ubuntu

RUN apt-get update -y && \ 
    apt-get install -y wget

CMD wget -O- -q http://ifconfig.me/ip

PS - 要尽可能合并RUN语句。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接