如何告诉 Docker 在外部驱动器上存储和运行容器

如何告诉 Docker 在外部驱动器上存储和运行容器

我在 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,外部驱动器正在接收所有内容。

相关内容