2016-05-02 9 views
1

У меня есть этот контейнер: 5.6.21-апачский от https://hub.docker.com/_/php/Docker контейнер не запускается

Я установил все, что мне нужно, и мое заявление, но я сделал ошибку, делает что-то не так с Apache конфиги.

Когда я пытаюсь начать свой контейнер, я получаю сообщение:

докер начать -ai мой-контейнер

[Пн Май 02 19: 46: 33,358838 2016] [ядро: предупредить] [PID 1] AH00111: Конфигурационная переменная $ {APACHE_LOG_DIR} не определена [Пн май 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

Вы можете оставить Dockerfile, если вы не использовали dockerfile, вы можете объяснить, как вы создали образ. Кроме того, можете ли вы разместить свой конфиг, чтобы мы могли понять, что пошло не так? –

+0

Проблема не в моем файле Docker, потому что он работал, проблема в моих изменениях конфигурации! я ошибаюсь, установил неверную конфигурацию строки в apache.conf, после чего контейнер больше не запускается. –

+0

Вы внесли изменения непосредственно в контейнер? Если да, то как вы вносили изменения? Я обновляю свой ответ с помощью другого варианта –

ответ

0

Поскольку вы не дали достаточной информации для продолжения, я просто буду угадывать. Не стесняйтесь добавлять дополнительную информацию к своим вопросам, чтобы вам было легче помочь.

Если вы ищете конфигурационный файл apache и ищете APACHE_LOG_DIR, это, вероятно, укажет на вашу проблему.

Эта линия в журналах интересно:

Не удается получить доступ к каталогу '/ и т.д./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 

В основном сохранить текущее состояние контейнера в качестве изображения, чтобы вы могли запустить его в оболочке и исправить проблемы. Затем, как только вы устраните проблемы, вы можете создать новое изображение и использовать его для запуска своего контейнера.

Обычно я избегаю этой боли, не внося никаких изменений непосредственно в контейнеры, я только вношу изменения в свои докерные файлы, а затем, когда мне нужно сделать, я изменяю файл докеров. Если есть проблема, мне просто нужно исправить файл докеров, и контейнеры не попадут в это плохое состояние.

+0

thx ken, но у нас нет опции «-e» при запуске comand docker. Мне просто нужно отредактировать apache2.conf, локализованную в /etc/apache2/apache.conf, но поскольку я не могу запустить контейнер, я не могу отредактировать этот файл ... есть другой способ редактировать файл контейнера без запуска? –

+0

Справа, я думал, что докер бежит. Думаю, это оставляет второй вариант, я отредактирую свой ответ –

0

В моем случае после перезагрузки компьютера (или спящего/перезапуск системы) У меня возникла проблема с запуском контейнера. Перед запуском запуска я использую команду docker exec. Пример:

docker exec -ti CONTAINER_NAME /bin/bash 

(Есть сообщение, что контейнер не работает, а затем)

docker start CONTAINER_NAME 
Смежные вопросы