Олег Марков
Где находится конфигурационный файл php.ini в Docker
Введение
Работа с контейнерами Docker предоставляет множество преимуществ, таких как изоляция окружения и легкость в развертывании приложений. Однако иногда могут возникать сложности с настройкой окружения, в частности, конфигурации PHP-приложений. Одним из ключевых файлов, которые часто требуют изменений, является конфигурационный файл php.ini
. В этой статье мы подробно разберем, где его найти в Docker-контейнере и как внести необходимые изменения.
Работа с конфигурационным файлом php.ini в Docker
Для начала, важно понять, что сами контейнеры Docker основаны на образах. Эти образы создаются на базе так называемых Dockerfile, где и описываются команды для настройки окружения. PHP-образы, соответственно, содержат предопределенные конфигурации, включающие файл php.ini
.
Поиск и настройка конфигурационного файла php.ini
в Docker-контейнерах необходимы для оптимизации работы PHP-приложений. Важно знать, где находится этот файл и как его правильно настроить. Если вы хотите детальнее погрузиться в вопросы конфигурации PHP в Docker, а также узнать, как оптимизировать работу ваших приложений, приходите на наш большой курс Docker + Ansible - с нуля. На курсе 159 уроков и 7 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Где искать php.ini в Docker
По умолчанию, при использовании официального PHP-образа, файл php.ini
находится в одном из стандартных для PHP мест, например:
/usr/local/etc/php/php.ini
Чтобы убедиться в точности расположения, самым простым способом будет использование команды, позволяющей выполнить один из образов в интерактивном режиме и просмотреть расположение файлов:
docker run --rm -it php:7.4-cli php --ini
Эта команда запустит контейнер с образом PHP версии 7.4 в интерактивном режиме и выведет список всех загруженных конфигурационных файлов. Это позволит вам точно увидеть, где находится php.ini
внутри контейнера.
Изменение php.ini
Теперь, когда вы знаете, где располагается ваш php.ini
, вероятно, вам понадобятся изменения в его содержимом для настройки под ваши нужды. Процесс изменения может быть выполнен несколькими способами.
Способ 1: Прямое редактирование файла в контейнере
Вы можете зайти в работающий контейнер и отредактировать файл, используя текстовые редакторы, доступные в Unix-системах:
docker exec -it your_container_name /bin/bash
nano /usr/local/etc/php/php.ini
Здесь мы используем nano
как текстовый редактор для редактирования php.ini
. Вы можете использовать любой другой редактор, который вам знаком и удобен.
Однако подобный подход не сохраняет ваши изменения при перезапуске контейнера, так как любой контейнер основан на неизменном образе.
Способ 2: Использование Dockerfile
Этот способ более надежный, чем предыдущий, так как ваши изменения будут сохраняться при каждом создании контейнера из образа.
Создайте Dockerfile и используйте следующую команду:
FROM php:7.4-cli
COPY ./my-php.ini /usr/local/etc/php/php.ini
Здесь вы создаете собственный образ на базе официального PHP-образа, заменяя штатный php.ini
на ваш собственный, сохраненный локально.
Способ 3: Подключение файла через volume
Также можно использовать volumes для подключения локального конфигурационного файла php.ini
к контейнеру.
В вашем docker-compose.yml
или при запуске контейнера через командную строку, вы можете указать маппинг:
volumes:
- ./my-php.ini:/usr/local/etc/php/php.ini
Или в командной строке:
docker run --rm -it -v $(pwd)/my-php.ini:/usr/local/etc/php/php.ini php:7.4-cli
Этот способ также гарантирует сохранность ваших настроек, так как внешний файл не потеряется при перезапуске контейнера.
Заключение
На этом этапе вы должны иметь полное представление о том, где находится php.ini
в Docker и как можно эффективно управлять его содержимым. Вы узнали, как проверить текущие настройки, изменить их непосредственно в контейнере, использовать Dockerfile или volumes для персистентного хранения изменений. Правильная настройка вашего PHP окружения — залог стабильности и производительности вашего приложения, поэтому не бойтесь экспериментировать и находить оптимальные параметры для своих нужд.
Настройка php.ini
— это лишь один из аспектов управления PHP-приложениями в Docker. Для более продвинутого управления необходимо освоить Docker Compose и инструменты автоматизации. На нашем курсе Docker + Ansible - с нуля вы научитесь всему необходимому для работы с PHP в Docker и автоматизации рутинных задач. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Docker прямо сегодня и станьте экспертом.
Постройте личный план изучения Docker до уровня Middle — бесплатно!
Docker — часть карты развития DevOps
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Бесплатные лекции
Все гайды по Docker
Лучшие курсы по теме

Docker и Ansible
Антон Ларичев
Основы Linux
Антон Ларичев