EC2 Ubuntu环境下Docker运行Apache镜像出现AH00558报错如何解决?
报错触发原因
这是Apache服务的提示类通知,不属于致命错误,不会中断Apache的正常运行:
- Apache启动时默认会读取全局配置中的
ServerName参数来确认服务器的全限定域名,你的镜像中没有提前配置该参数 - 启动时Apache找不到对应配置,就自动使用Docker容器分配的内网IP(本次报错中的172.17.0.2就是容器的桥接网络IP)作为默认值,同时抛出该提示告知用户可以通过配置
ServerName屏蔽该通知
修复方案
推荐直接修改Dockerfile永久消除该提示,只需要在安装apache2的步骤后新增一行配置写入全局配置文件即可,修改后的Dockerfile如下:
FROM ubuntu:16.04 RUN apt-get -y update RUN apt-get -y install apache2 # 新增如下行配置全局ServerName RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf RUN echo 'Hello aws!' > /var/www/html/index.html CMD ["/usr/sbin/apache2ctl", "-D","FOREGROUND"] EXPOSE 80
修改后重新执行docker build -t yar:v1 .构建镜像,再启动容器就不会再出现该提示。
如果不想重新构建镜像,也可以在启动容器时直接传入配置参数,命令如下:docker run -it -p 7777:80 yar:v1 /bin/bash -c "echo 'ServerName localhost' >> /etc/apache2/apache2.conf && /usr/sbin/apache2ctl -D FOREGROUND"
内容的提问来源于stack exchange,提问作者Ярослав
相关产品推荐
相关产品推荐

