感谢您。这让我疯狂起来。我以为是bash输出了这个消息。我正准备提交一个关于bash的错误报告。不幸的是,在笔记本电脑或类似设备上,磁盘已被充分利用,所提供的选项都不可行。以下是我针对该场景的答案。
以下是我在笔记本电脑的 /etc/sysconfig/docker-storage 中使用的内容:
DOCKER_STORAGE_OPTIONS="--storage-opt dm.no_warn_on_loop_devices=true"
注意:我必须重启docker服务才能生效。在Fedora上,命令如下:
systemctl stop docker
systemctl start docker
还有一个重启命令(systemctl restart docker
),但在重新启动之前最好检查一下停止是否真的起作用了。
如果您不介意在容器中禁用SELinux,则可以使用overlay。以下是一个完整描述的链接:
http://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/
总之,在/etc/sysconfig/docker中:
OPTIONS='--selinux-enabled=false --log-driver=journald'
并且对于/etc/sysconfig/docker-storage:
DOCKER_STORAGE_OPTIONS=-s overlay
当您更改存储类型时,重新启动docker将销毁您的完整镜像和容器存储。在此过程中,您可能会将所有内容都放在/var/lib/docker文件夹中:
systemctl stop docker
rm -rf /var/lib/docker
dnf reinstall docker
systemctl start docker
在RHEL 6.6中,任何具有docker访问权限的用户都可以访问我的私钥,并通过卷以最简单的方式作为root运行应用程序。 SELinux是Fedora和RHEL 7中防止这种情况发生的唯一方法。 也就是说,目前不清楚RHEL 7安全性增强的多少来自容器外部的SELinux,以及内部的SELinux有多少起到了作用...
通常,环回设备适用于最大100GB限制和稍微降低一些性能不是问题的情况。 我能找到的唯一问题是,如果运行时出现磁盘已满错误,则docker存储可能会损坏... 可以通过配额或其他简单的解决方案避免这种情况。
但是,对于生产实例来说,确保正确设置非常值得花费时间和精力。
100G可能过多,容器和镜像相当小。 许多组织在VM中运行docker容器作为安全和隔离的额外措施。 如果是这样,您可能每个VM只运行很少数量的容器。 在这种情况下,甚至10G可能足够。
最后需要注意的是,即使使用直接lvm,您可能也需要为/var/lib/docker添加一个额外的文件系统。 原因是命令“docker load”将在将其添加到数据存储之前在此文件夹中创建正在加载的镜像的未压缩版本。 因此,如果您试图使其小而轻,则请探索除直接lvm之外的其他选项。
LVM 如何操作 - Dylan