如何在无盘机器上运行docker?

如何在无盘机器上运行docker?

我想在无盘 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

不支持 NFS为了Docker 中的图形数据

应该可以完全从 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"
}

相关内容