【发布时间】:2016-09-03 03:52:19
【问题描述】:
每个 Docker 容器都会配置 10 GB 磁盘空间,这是 CentOS 中 devicemapper 的默认配置。那么如何配置每个新创建的容器默认超过 10 GB 的磁盘空间呢? (宿主服务器安装CentOS 6和Docker 1.7.1)
【问题讨论】:
标签: docker docker-image
每个 Docker 容器都会配置 10 GB 磁盘空间,这是 CentOS 中 devicemapper 的默认配置。那么如何配置每个新创建的容器默认超过 10 GB 的磁盘空间呢? (宿主服务器安装CentOS 6和Docker 1.7.1)
【问题讨论】:
标签: docker docker-image
是的,你可以。启动 Docker 守护程序时使用 dm.basesize 属性。例如:
docker daemon --storage-opt dm.basesize=50G ...
更多信息可以在the official docs找到。
【讨论】:
(可选)如果您已经通过docker pull 下载了任何图片,您需要先清理它们 - 否则它们将不会调整大小
docker rmi your_image_name
编辑存储配置
vi /etc/sysconfig/docker-storage
应该有DOCKER_STORAGE_OPTIONS="..."之类的,改成DOCKER_STORAGE_OPTIONS="... --storage-opt dm.basesize=100G"
重启 docker 守护进程
service docker restart
拉图片
docker pull your_image_name
(可选)验证
docker run -i -t your_image_name /bin/bash
df -h
我一直在为此苦苦挣扎,直到我发现了这个链接http://www.projectatomic.io/blog/2016/03/daemon_option_basedevicesize/ 原来你必须在扩大基本尺寸后删除/拉动图像。
【讨论】:
以上答案正确建议我们必须编辑 devicemapper 的 dm.basesize 属性, 但建议的解决方案已过时或根本不适用于我的情况。
首先确保您的存储驱动器是一个设备映射器:
docker info | grep "Storage Driver"
您还可以通过以下方式检查当前容器的最大大小:(默认 10 gb)
docker info | grep "Base Device Size"
1) 编辑 etc/docker/daemon.json 文件中的 dm.basesize,如果不存在则新建一个
{
"storage-opts": [
"dm.basesize=30G"
]
}
2) 重启 docker 守护进程
sudo systemctl stop docker
sudo systemctl start docker
3) 再次运行下面的命令以检查大小是否改变
docker info | grep "Base Device Size"
4) 更新当前图像以便应用更改很重要
【讨论】: