Остановить Docker от создания корневого каталога, когда внешний диск отключен? - PullRequest
0 голосов
/ 20 мая 2019

Использование linux (Ubuntu 18.04) У меня есть внешний жесткий диск, который я использую для моего корневого каталога докера. Все мои изображения извлекаются и сохраняются на этом внешнем диске. Корневой каталог докера установлен в /media/<username>/<drive_name>/Docker/Images внутри файла docker daemon.json.

Однако, если я запускаю машину без подключенного диска или запускаю докер без подключенного диска, докер создает каталог с именем /media/<username>/<drive_name>/Docker/Images.

Похоже, он даже устанавливает зависимости докера и заполняет все обычные подпапки (хотя мои загруженные образы докера не заполняются; они будут извлечены снова, если я попытаюсь запустить контейнер).

Как это создает этот каталог на моей машине и есть ли способ остановить это поведение?

Обновление : внесение изменений в Docker вызывало проблемы, поэтому я пошел немного проще и использовал этот ОЧЕНЬ простой скрипт для запуска Docker:

#!/bin/bash

if [ -d /media/<username>/<drive_name>/Docker/Images ]; then
        echo "Starting Docker!"
        systemctl start docker
else
        echo "Docker drive not present!"
        exit 1
fi

1 Ответ

1 голос
/ 20 мая 2019

Вы изменяете способ запуска службы таким образом, чтобы он запускался только при наличии корневого пути докера.

Остановите службу докера, если она работает:

sudo systemctl stop docker

Создайте сценарий исделайте его исполняемым:

#!/bin/bash

if [ -d /media/<username>/<drive_name>/Docker/Images ]; then
  /usr/bin/dockerd -H fd://
else
  echo Drive is not present
  exit 1
fi

Отредактируйте файл /etc/systemd/system/docker.service и измените строку ExecStart на:

ExecStart=<path to your shell script>

Затем перезапустите докер:

sudo systemctl daemon-reload
sudo systemctl start docker

Это должно препятствовать запуску службы Docker, если путь еще не существует.

...