我在 Ubuntu Linux 上运行 Docker。我有一个Dockerfile
从其他地方引入大量数据的程序。我将它放在Dockerfile
已安装到本地文件系统 (ext4) 的外部驱动器上。然后我从该外部驱动器文件系统内运行构建。
docker build -t mycontainer .
我在容器构建过程中观察了驱动器的使用情况。所有驱动器的使用都在根文件系统上,而不是附加驱动器上。
我已阅读了一些关于将 Docker 根/基位置更改为/var/lib/docker
其他位置的文章,但到目前为止我所得到的只是docker.service: Failed with result 'exit-code'
。
-g options
我还尝试在文件中添加/lib/systemd/system/docker.service
:
ExecStart=/usr/bin/dockerd -H fd:// # original
ExecStart=/usr/bin/dockerd -g /new/path/docker -H fd:// # updated
这也无济于事。
我如何告诉 Docker 使用外部驱动器?
答案1
有几件事帮助我实现了这个功能。首先,我将外部文件系统挂载在主目录中,这可能导致了一些权限问题。因此,我重新挂载了文件系统,/mnt
并更新了权限和所有权,如下所示:
# chown -R root:root /mnt/external-drive/docker-base
# chmod 701 /mnt/external-drive/docker-base
然后我创建了/etc/docker/daemon.json
包含以下内容的文件:
{
"graph": "/mnt/external-drive/docker-base"
}
我重新启动了 docker 服务,一切似乎都很好。执行 a 操作后docker build
,外部驱动器正在接收所有内容。