Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.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
Linux apk安装包在容器中不可用_Linux_Docker_Alpine - Fatal编程技术网

Linux apk安装包在容器中不可用

Linux apk安装包在容器中不可用,linux,docker,alpine,Linux,Docker,Alpine,我正在使用alpine linux构建一个映像,如下所示: FROM alpine:3.7 RUN apk update \ apk upgrade \ apk add bash CMD ["sh","ls"] 我希望bash在容器中可用,但当我运行它时,它找不到bash docker run -it --rm tmp:latest /bin/sh / # bash /bin/sh: bash: not found 如果有人能帮我理解为什么它不可用

我正在使用alpine linux构建一个映像,如下所示:

FROM alpine:3.7

RUN apk update \
apk upgrade \
apk add bash

CMD ["sh","ls"]
我希望bash在容器中可用,但当我运行它时,它找不到bash

docker run -it --rm tmp:latest /bin/sh
/ # bash
/bin/sh: bash: not found

如果有人能帮我理解为什么它不可用,我将不胜感激

尝试在每个apk命令之后添加
&&
,如下面的Dockerfile。docker构建容器时,原始的
RUN
行扩展为单个命令
apk update apk upgrade apk add bash
,而不是单独的命令。因此,在构建映像时,
apk add bash
命令没有正确运行

FROM alpine:3.7

RUN apk update && \
apk upgrade && \
apk add bash

CMD ["sh","ls"]
您应该将单独的命令与
和&
组合在一起,因此如果其中一个命令失败,则在构建映像时会报告该命令

FROM alpine:3.7

RUN apk update && \
apk upgrade && \
apk add bash

CMD ["sh","ls"]