我有这个容器:来自https://hub.docker.com/_/php/
的5.6.21-apache我已经安装了我需要的所有内容和我的应用程序,但是在Apache配置中出错了我犯了一个错误。
当我尝试启动我的容器时,我收到此消息:
docker start -ai my-container
[Mon May 02 19:46:33.358838 2016] [core:warn] [pid 1] AH00111:未定义配置变量$ {APACHE_LOG_DIR} [Mon May 02 19:46:33.365305 2016] [core:warn] [pid 1] AH00111:未定义配置变量$ {APACHE_LOG_DIR} AH00558:apache2:无法使用172.17.0.2可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以禁止显示此消息 (2)没有这样的文件或目录:AH02291:无法访问目录'/ etc / apache2 / $ {APACHE_LOG_DIR} /'作为主错误日志 AH00014:配置检查失败
我该如何解决这个问题?我想放弃这个配置。我不能丢失这个容器。
答案 0 :(得分:0)
由于你还没有提供足够的信息,我只是猜测。您可以随意在问题中添加更多信息,以便更轻松地为您提供帮助。
如果您搜索apache配置文件并查找APACHE_LOG_DIR
,则可能会指出您的问题。
日志中的这一行很有意思:
无法访问目录'/ etc / apache2 / $ {APACHE_LOG_DIR} /'
不确定为什么在/ etc / apache2下会有一个日志目录,但要查看该目录以查看其中的内容,并相应地设置APACHE_LOG_DIR
。
您可以尝试的另一件事是执行以下操作
docker commit (container name or Id) myimage
docker run -it myimage /bin/bash
然后再次提交更改以创建固定图像,并尝试像平常一样启动它。
docker commit (container Id or name) myimage2
docker run -d -p 80:80 myimage2
基本上将当前容器状态保存为图像,以便您可以在shell中启动它并修复问题。然后,一旦解决了问题,就可以创建新图像并使用它来运行容器。
我通常不通过直接在容器中进行更改来避免这种痛苦,我只在dockerfiles中进行更改,然后当我需要进行更改时,我更改了dockerfile。如果出现问题,我只需修复dockerfile,容器就不会处于这种不良状态。
答案 1 :(得分:0)
在我重新启动计算机(或睡眠/重启系统)后,我遇到了启动容器的问题。 在运行开始之前,我使用docker exec命令。 例如:
docker exec -ti CONTAINER_NAME /bin/bash
(有一条消息说容器没有运行然后)
docker start CONTAINER_NAME