我在 Ubuntu Linux 上运行 Docker。我有一个Dockerfile
从其他地方带来大量数据的数据。我把它Dockerfile
放在我已经安装到本地文件系统 (ext4) 的外部驱动器上。然后我从该外部驱动器文件系统中运行构建。
docker build -t mycontainer .
Run Code Online (Sandbox Code Playgroud)
我在容器构建时观察了驱动器的使用情况。所有驱动器使用都在根文件系统上,而不是连接的驱动器上。
我已经阅读了一些关于将 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
Run Code Online (Sandbox Code Playgroud)
这也没有帮助。
如何告诉 Docker 使用外部驱动器?
有几件事帮助我完成了这项工作。首先,我将外部文件系统安装在主目录中,这可能会导致一些权限问题。所以我重新安装了文件系统/mnt
并更新了权限和所有权,如下所示:
# chown -R root:root /mnt/external-drive/docker-base
# chmod 701 /mnt/external-drive/docker-base
Run Code Online (Sandbox Code Playgroud)
然后我/etc/docker/daemon.json
用这些内容创建了文件:
{
"graph": "/mnt/external-drive/docker-base"
}
Run Code Online (Sandbox Code Playgroud)
我重新启动了 docker 服务,一切似乎都很好。做一个docker build
和外部驱动器正在接收所有内容。
归档时间: |
|
查看次数: |
7003 次 |
最近记录: |