Быстрое обходное решение
Уничтожить текущий экземпляр веб-сервера. Вы можете изменить порт 80 на 443, если вместо этого используете этот порт. После этого вы сможете запустить свой экземпляр.
kill -SIGWINCH $(fuser 80/tcp 2>/dev/null | sort -n | awk {'print $1'})
SIGWINCH заставляет Apache обслуживать любые ожидающие запросы перед корректным завершением работы. Для более принудительного выключения вы можете изменить на SIGKILL .
Решение
Определите, откуда берется избыточная установка, и удалите ее, чтобы вы могли установить стандартный пакет дистрибутива для своего веб-сервера и положиться на него.
# fuser 80/tcp 2>/dev/null | grep [0-9] | xargs ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
COMMAND
root 5336 0.0 2.7 421492 27928 ? Ss May29 2:47
/usr/sbin/apache2 -k start
www-data 14390 0.0 0.8 421948 8484 ? S 16:59 0:00
/usr/sbin/apache2 -k start
www-data 14395 0.0 0.8 421948 8396 ? S 16:59 0:00
/usr/sbin/apache2 -k start
www-data 14396 0.0 0.8 421964 8432 ? S 16:59 0:00
...
Если вы найдете путь, который находится в /opt, /usr/local, /opt или подобном, это явный признак того, что у вас есть локальная ручная установка в избыточном пакете веб-сервера дистрибутива. Удалите его и все -сценарии запуска, которые идут вместе с ним!
На этот вопрос ответил суперпользователь . В основном это сводится к ручной установке Docker на внешний диск путем загрузки двоичных файлов и создания сценария запуска, который указывает путь к изображениям с использованием параметра --data-root
dockerd. Однако вы не можете / не должны делать это с файловой системой ntfs или fat32. Мне удалось запустить переносной экземпляр докера с внешнего жесткого диска с разделом xfs.
#/bin/bash
PATH=$PATH:$(pwd):$(pwd)/compose
$(pwd)/dockerd --data-root $(pwd)/../data/
pid=$(cat /var/run/docker.pid)
kill -9 $pid