“/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/
我有一个简单的 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/