“/bin/sh: 1: [“apache2ctl”,: 在 docker 中找不到”

"/bin/sh: 1: [“apache2ctl”,: not found" in docker

我有一个简单的 Dockerfile

FROM ubuntu
RUN apt-get update
RUN apt-get install -y apache2
RUN apt-get install -y apache2-utils
RUN apt-get clean
RUN apt-get upgrade -y
EXPOSE 80
CMD [“apache2ctl”, “-D FOREGROUND”]

我用下面的语句构建它

docker build -t mywebserver .

效果很好,但是当我想用

执行它时
docker run -p 80:80 mywebserver

它 returns 您可以在标题中看到的错误消息。 我还尝试了 /usr/sbin/apache2ctl 而不是 apache2ctl 以确保它不是因为 PATH 中丢失,但这没有帮助。

非常感谢您的帮助。

您在 CMD 中有印刷引号(“”),请使用直引号 (")。– Dan Lowe

更改此行

CMD [“apache2ctl”, “-D FOREGROUND”]

CMD ["apache2ctl", "-D","FOREGROUND"]

你应该把你的 运行 分组,顺便看看

https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/