Docker容器无法启动

时间:2016-05-02 19:53:54

标签: apache docker containers

我有这个容器:来自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:配置检查失败

我该如何解决这个问题?我想放弃这个配置。我不能丢失这个容器。

2 个答案:

答案 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