Как создать каталог в контейнере Docker, который не запускается? - PullRequest
0 голосов
/ 31 января 2019

У меня есть контейнер Docker (не образ), который вылетает при попытке его запустить.Журналы Docker показывают, что это происходит сбой, потому что и файл Apache2 conf не может найти каталог (/ var / www / html / log / - это результат того, что я пытался настроить SSL и забыл создать этот каталог после того, как на меня ссылалисьэто в файле 000-default.conf и перезапущенном Apache).

Как мне создать этот каталог в контейнере без необходимости запуска самого контейнера?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

В общем, если вы используете базовый образ Docker для Apache (например, httpd / 2.4 / Dockerfile), он должен уже иметь "/ var / www / html / log".

ПРЕДЛОЖЕНИЕ 1: Убедитесь, что вы начинаете с «хорошего» базового образа.

ПРЕДЛОЖЕНИЕ 2: Добавьте «mkdir -p / var / www / html / log» в свой Dockerfile.и перестройте образ.

Я не уверен, как вы используете свое изображение - что вы хотите, чтобы изображение содержало помимо Apache - но:

ПРЕДЛОЖЕНИЕ3: Google для простого учебника, который соответствует вашему варианту использования, и посмотрите, какие шаги вы могли бы «пропустить».Например: Dockerize ваше приложение Laravel

0 голосов
/ 31 января 2019

У меня есть 4.5 опции, которые приходят мне в голову:

  • Вы можете перестроить образ и настроить каталог, выполняя это.
  • Вы можете присоединить том во время запускаизображение, но в этом случае ваши изменения останутся на вашем диске, а не в вашем контейнере.
  • Вы можете запустить изображение, переопределяющее точку входа, с помощью --entrypoint = "bash" или чего-то еще.Вам нужно сделать это с флагом -ti, чтобы он начинался в интерактивном режиме.Затем внесите изменения и запустите контейнер docker commit -p <container> <image:tag> -p pauses во время коммита.Я рекомендую это, если только он абсолютно не должен быть запущен.
  • Я не уверен, работает ли этот, поэтому я даю половину балла: P, но если это так, это будет самый быстрый вариант на самом деле.Вы можете запустить контейнер в интерактивном режиме с помощью docker start -i container, к которому будет подключен терминал.И если у вас есть время до выхода из контейнера или чтения этой части конфигурации, вы можете создать папку.
  • И, наконец, я только что вспомнил, вы должны иметь возможность перемещать файлы и папки из файловой системы в контейнериспользуя docker cp [container:]<source> [container:]<destination>, даже если контейнер не запущен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...