当外部驱动器断开连接时,停止Docker创建根目录吗?

时间:2019-05-20 00:38:39

标签: docker ubuntu-18.04

使用linux(Ubuntu 18.04),我有一个用于Docker根目录的外部硬盘驱动器。我所有的图像都被拉出并存储在此外部驱动器上。 Docker的根目录在docker daemon.json文件中设置为/media/<username>/<drive_name>/Docker/Images

但是,如果我在未连接此驱动器的情况下启动计算机,或者如果我在未连接此驱动器的情况下启动docker,则docker将创建一个名为/media/<username>/<drive_name>/Docker/Images的目录。

它甚至似乎安装了Docker依赖项并填充了所有常用的子文件夹(尽管未填充我下载的Docker映像;如果我尝试运行容器,它们将再次被拉出)。

这如何在我的计算机上创建此目录,并且有什么方法可以阻止这种行为?

更新:对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 个答案:

答案 0 :(得分:1)

您可以修改服务的启动方式,以便仅在docker根路径存在的情况下启动服务。

如果docker服务正在运行,请停止它:

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>

然后重新启动docker:

sudo systemctl daemon-reload
sudo systemctl start docker

如果路径尚不存在,这将阻止docker服务启动。