Ошибка при перезапуске Apache2 внутри контейнера - PullRequest
1 голос
/ 16 октября 2019

При попытке создать стек ламп в док-контейнере, после настройки файлов при попытке перезапустить с помощью команды

service apache2 restart 

Выдает ошибку

[....] Restarting Apache httpd web server: apache2/usr/sbin/apache2ctl: 99: ulimit: error setting limit (Operation not permitted)
Setting ulimit failed. See README.Debian for more information.
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
 failed!

Даже я пытался с

service apache2 reload
apache2 graceful

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Вы почти никогда не используете команды типа service или systemctl вокруг контейнеров Docker. Если вам нужно перезапустить службу, работающую в контейнере, остановите, удалите и перезапустите контейнер

docker stop my-apache
docker rm my-apache
docker run --name my-apache -p ... -v ... httpd:2.4

Удаление и перезапуск контейнеров таким способом является чрезвычайно обычным. Мой образец docker runкоманда имеет заполнитель -v опция;обычно вы используете это для добавления конфигурации в контейнер во время запуска, чтобы ничего не потерялось при удалении контейнера.

0 голосов
/ 16 октября 2019

Что-то еще явно использует порт, попробуйте эту команду, чтобы выяснить, кто использует порт 80

netstat -plnt

Если вы не используете это приложение, убейте его.

kill -15 <pid>

затем вы перезапускаете сервер apache снова

service apache2 reload

Надеюсь, это поможет !!

...