强烈建议不要使用环回设备进行生产

roc*_*sun 40 virtualbox vagrant docker

我想在我的CentOS 7.1盒子里测试docker,我收到了这个警告:

[root@docker1 ~]# docker run busybox /bin/echo Hello Docker
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
Hello Docker
Run Code Online (Sandbox Code Playgroud)

我想知道原因以及如何抑制此警告.

CentOS实例在vagrant创建的virtualbox中运行.

lar*_*sks 55

出现警告消息是因为您的Docker存储配置使用的是"环回设备" - 虚拟块设备(例如/dev/loop0实际上由文件系统上的文件支持).这绝不仅仅意味着让Docker快速启动并快速运行作为概念验证.

你不想压制警告; 您希望修复存储配置,以便不再发出警告.最简单的方法是分配一些本地磁盘空间供Docker的devicemapper存储驱动程序使用并使用它.

如果您正在使用LVM并在卷组上有一些可用空间,则这相对容易.例如,要为docker 100G提供空间,首先要创建数据和元数据卷:

# lvcreate -n docker-data -L 100G /dev/my-vg
# lvcreate -n docker-metadata -L1G /dev/my-vg
Run Code Online (Sandbox Code Playgroud)

然后通过编辑/etc/sysconfig/docker-storage将Docker配置为使用此空间,如下所示:

DOCKER_STORAGE_OPTIONS=-s devicemapper --storage-opt dm.datadev=/dev/my-vg/docker-data --storage-opt dm.metadatadev=/dev/my-vg/docker-metadata
Run Code Online (Sandbox Code Playgroud)

如果您没有使用LVM或VG上没有可用空间,则可以以类似的方式将其他块设备(例如,备用磁盘或分区)暴露给Docker.

有关于这个主题的一些有趣的笔记这里.

  • @PierrePrinetti VG =卷组[LVM How To](http://tldp.org/HOWTO/LVM-HOWTO/anatomy.html) (2认同)