Как внести изменения в httpd.conf apache работает внутри контейнера DOCKER и перезапускает apache
Я новичок в docker. В нашей среде docker - Apache был установлен, и он запущен и работает.
Теперь мне нужно попасть в контейнер, изменить httpd.conf
, сохраните его, а затем мне нужно перезапустить apache.
Ребята, пожалуйста, дайте мне знать, что нужно сделать. Я очень сильно запутался - команды "exec" и "attach".
3 ответов
Не нужно прикреплять или exec (это вообще особенность отладки)
можно использовать docker cp
скопировать локальную версию httpd.conf
в контейнер. (Таким образом, вы можете изменить файл, не выходя из локальной среды)
docker cp httpd.conf <yourcontainer_name>:/path/to/httpd.conf
как только это будет сделано, вы можете отправить сигнал USR1, чтобы попросить изящный перезапуск (см. docker kill
синтаксис):
docker kill --signal="USR1" <yourcontainer_name>
заменить <yourcontainer_name>
контейнером ID или имя запущен Apache.
это будет работать только если основной процесс запущен ваш контейнер
CMD ["apachectl", "-DFOREGROUND"]
на "Docker: как перезапустить службу, запущенную в контейнере Docker"
введите контейнер, открыв оболочку bash:
docker exec -it containerName bash
Я думаю, вам лучше просто перезагрузить Apache config и не перезагружать apache. Но я бы не пошел по этому маршруту и просто изменил Dockerfile и перестроил и перезапустил изображение.
изменить ссылку:https://docs.docker.com/engine/reference/commandline/exec/
для обновления конфигураций Apache вам необходимо:
-
заменить конфигурации Apache.
a. Если у вас есть папка config, сопоставленная извне контейнера, вы должны обновить конфигурации вне контейнера. b. Если ваши конфигурации apache хранятся внутри контейнера, вам нужно будет запустить что-то вроде этого:
настройки СР файл httpd.conf YOUR_CONTAINER_NAME:/path/to / httpd.conf
-
Do Изящный Apache перезапустить:
sudo docker exec-это YOUR_CONTAINER_NAME apachectl изящный