使用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
答案 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服务启动。