我想在无盘 Ubuntu 16.04 上运行 docker。
我设置了 PXE 服务器并且可以运行无盘 ubuntu 参考这里。但是当我运行时docker run --rm hello-world
,无盘机器返回以下消息。
[1731.173432] overlayfs: filesystem on '/var/lib/docker/overlay2/0fdffd6d...76-init/diff' not supported as upperdir
docker: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/870b3f2dd200854c747c16abae84e22bf42506cc0aba0fa183205165a83462d5-init/merged: invalid argument.
See 'docker run --help'.
我搜索了这个错误并了解到 docker 使用“overlay2”作为文件系统,而“overlay2”不支持我使用的 nfs 文件系统。
有人可以帮我在无盘机器上使用docker吗?
答案1
它应该可以完全从 ramdisk 运行 Docker如果您设置DOCKER_RAMDISK
环境变量并让 Docker 守护进程使用它dockerd -g /path/to/ramdisk
如果您有任何其他方法将块设备导出到 PXE 启动的计算机,请执行此操作并将该设备用作direct-lvm
存储为设备映射器存储驱动程序。NBD,iSCSI, 或许头孢。
我认为 NFS 可能工作的唯一方法是 Oracle Linux 有(有?)DM-NFS内核驱动程序可以使用使 devicemapper 环回文件比正常通过 NFS 挂载环回文件更快。环回文件对于本地磁盘上的 Docker 来说不太好,所以我预计 NFS 上的情况很可能会很糟糕。
答案2
我可以找到如何在 NFS 上使用 docker。使用aufs代替overlay2。
您应该通过 停止 docker 服务sudo systemctl stop docker
。然后,编辑/etc/docker/daemon.json
如下,并通过 再次运行docker sudo systemctl start docker
。
{
"storage-driver": "aufs"
}