Docker, работающий внутри USB-накопителя

Быстрое обходное решение

Уничтожить текущий экземпляр веб-сервера. Вы можете изменить порт 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 или подобном, это явный признак того, что у вас есть локальная ручная установка в избыточном пакете веб-сервера дистрибутива. Удалите его и все -сценарии запуска, которые идут вместе с ним!

0
25.05.2018, 20:33
1 ответ

На этот вопрос ответил суперпользователь . В основном это сводится к ручной установке Docker на внешний диск путем загрузки двоичных файлов и создания сценария запуска, который указывает путь к изображениям с использованием параметра --data-rootdockerd. Однако вы не можете / не должны делать это с файловой системой 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
0
02.11.2020, 05:40

Теги

Похожие вопросы