Docker 存储设置
docker默认单个容器可以使用数据空间大小10GB,docker可用数据总空间100GB,元数据可用总空间2GB。用docker info信息可以查看Data Space Total、Metadata Space Total等信息:
[root@docker-01 sysconfig]# docker infoContainers: 23Images: 45Storage Driver: devicemapper Pool Name: docker-8:36-13501344-pool Pool Blocksize: 65.54 kB Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 1.684 GB Data Space Total: 107.4 GB Metadata Space Used: 2.699 MB Metadata Space Total: 2.147 GB Library Version: 1.02.89-RHEL6 (2014-09-01)Execution Driver: native-0.2Kernel Version: 2.6.32-504.el6.x86_64Operating System: <unknown>CPUs: 24Total Memory: 47.09 GiBName: docker-01ID: S3F6:VR2L:WH7X:QLQO:RH6P:EVBT:QRUW:NNMV:4MQ7:YADK:Q6OV:Q2IQ[root@docker-01 sysconfig]# |
占用本地文件系统空间大小如下(data存放的是image和container数据,metadata存放的是tag、name、status等基本信息):
[root@docker-01 ~]# ll /var/lib/docker/devicemapper/devicemapper/ -htotal 35G-rw------- 1 root root 100G Jun 5 13:43 data-rw------- 1 root root 2.0G Jun 5 13:43 metadata[root@docker-01 ~]# |
可以使用df -hT查看容器可以使用的空间大小,下面的大约是10GB(同一数据块,不同文件系统大小存在差异)
[root@docker-01 ~]# docker exec zhijie df -hTFilesystem Type Size Used Avail Use% Mounted onrootfs rootfs 9.8G 1.8G 7.5G 20% //dev/mapper/docker-8:3-61079671-9623cd0329b8e2a093cae0911ce6dabe515397391252ed410d6dd9b5c06da77f ext4 9.8G 1.8G 7.5G 20% /tmpfs tmpfs 24G 0 24G 0% /devshm tmpfs 64M 0 64M 0% /dev/shm/dev/sda3 ext4 1.1T 228G 800G 23% /etc/resolv.conf/dev/sda3 ext4 1.1T 228G 800G 23% /etc/hostname/dev/sda3 ext4 1.1T 228G 800G 23% /etc/hosts[root@docker-01 ~]# |
当一个容器的数据空间大于10GB后,那么这个容器将不能写入新的数据文件。如果容器需要很大的数据空间,可以使用数据卷挂在到宿主机或存储上。当容器太多使用数据卷挂载方式后,所有容器使用的数据空间已经大于100GB,这时将不能新建或运行容器。如何突破这种限制,这篇文章给出了解答:https://github.com/docker/docker/tree/master/daemon/graphdriver/devmapper
分两种情况讨论:
1、如果docker第一次启动,在启动docker前,可以使用参数–storage-opt分别指定dm.basesize、dm.loopdatasize、dm.loopmetadatasize等项,指定单个容器可用数据空间、docker可用数据空间、元数据可用数据空间。以centos6.6为例(修改配置文件/etc/sysconfig/docker):
[root@docker-02 ~]# cat /etc/sysconfig/docker# /etc/sysconfig/docker## Other arguments to pass to the docker daemon process# These will be parsed by the sysv initscript and appended# to the arguments list passed to docker -dother_args="--storage-opt dm.basesize=20G --storage-opt dm.loopdatasize=200G --storage-opt dm.loopmetadatasize=4G -H tcp://127.0.0.1:2345 -H unix:///var/run/docker.sock"DOCKER_CERT_PATH=/etc/docker# Location used for temporary files, such as those created by# # docker load and build operations. Default is /var/lib/docker/tmp# # Can be overriden by setting the following environment variable.# # DOCKER_TMPDIR=/var/tmp[root@docker-02 ~]# |
分别指定单个容器可用数据空间20GB、docker可用数据空间200GB、元数据可用空间4GB。然后启动docker,用docker info可以查看配置已生效:
|
|
2、如果是正在运行的docker,需要导出镜像docker commit、docker push、docker save等操作,然后停止docker服务,删除docker的数据文件(centos6.6是rm -rf /var/lib/docker/)。再修改docker的配置文件/etc/sysconfig/docker,重启docker服务生效。最后导入备份的镜像启动容器。
文章出处:http://www.xiaomastack.com/2015/06/05/docker-storage/
Docker 存储设置的更多相关文章
- Docker存储驱动之总览
简介 本文会介绍Docker存储驱动的特性,别列出现在已经支持的存储驱动,最后,会介绍如果选型适合你的存储驱动. 可插拔的存储驱动架构 Docker的存储驱动架构是可插拔的,可以让你很方便的将适合你环 ...
- Docker存储
前言 上一篇文章中简单总结了一下docke的基础使用方法,这次我来总结一下有关docker存储方面的相关知识.本文同样建立在CloudMan的系列教程之上,有兴趣的可以直接移步. 有些人可能觉得这个很 ...
- Docker系列05—Docker 存储卷详解
本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜 ...
- 6、Docker存储卷
Why Data Volumes? 来自马哥教育 Data volumes Volume types 绑定挂载卷:在宿主机和容器上各指明绑定路径才能进行绑定. docker管理卷:在容器内指定挂载 ...
- Docker存储卷(V18.X)
简介 介绍 Docker的存储卷称之为volume,本质上容器上的一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机中的目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linux的mou ...
- docker存储与网络
目录 Docker存储 挂载主机目录 创建一个数据卷 挂载一个宿主机目录作为数据卷 数据卷容器 创建一个数据卷容器 利用数据卷容器迁移数据 删除数据盘 Docker网络 简介 bridge网络 bri ...
- Docker存储方式选型建议
转自:https://segmentfault.com/a/1190000007168476 第一部分 问题诊断 事情从一次实施项目说起,我们需要帮助客户将他们的应用容器化并在数人云平台上发布此应用. ...
- Docker存储卷
六.Docker 存储卷(volume) COW:写时复制 Bind mount volume:手动mount绑定的卷 # docker run --name centos-3 -it -v /dat ...
- Docker 存储引擎
可插拔存储引擎架构 这种可插拔式的存储架构.可以让你很灵活的去选择适合自己环境的存储引擎. 每个存储引擎都是以Linux 文件系统为基础的.此外,每个存储引擎都以自己的方式自由的管理image ...
随机推荐
- Robot Framework--01 创建简单工程示例
1.新建Project: 填写name,选择Type为Dirctory,路径根据自己需要选择,建议最好不要在中文路径下,以免发生问题:
- OC-block
#import <Foundation/Foundation.h> /* block要掌握的东西 1> 如何定义block变量 int (^sumBlock)(int, int); ...
- json_decode
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}' ...
- python递归理解图
递归:下一级只能return给自己的上一级. import re val="9-2*5/3+7/3*99/4*2998+10*568/14" val="9-2*5/3+7 ...
- Java学习注意事项
一个Java文件中可以包含多个类. 如果有public类,则文件名必须和public类一样. 例如: class Pie { void f(){ System.out.println("Pi ...
- ActiveMQ 目录
(1) ActiveMQ简介 (2) JMS基本概念和模型 (3) JMS的可靠性 (4) ActiveMQ结合Spring开发 (5)ActiveMQ支持的传输协议 (6)ActiveMQ消息存储持 ...
- hdu5009 Paint Pearls (DP+模拟链表)
http://acm.hdu.edu.cn/showproblem.php?pid=5009 2014网络赛 西安 比较难的题 Paint Pearls Time Limit: 4000/2000 M ...
- RQNOJ659 计算系数
http://www.rqnoj.cn/problem/659 描述 给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数. 格式 输入格式 共一行,包含5个整数,分别为 ...
- web 开发前端学习
调试插件:http://www.getpostman.com/ http://bootstrap.evget.com/javascript.html bootstrap: http://www.bo ...
- NHibernate配置
因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数.幸运的是,大部分都已经有默认值了. NHibernate.Test.dll包含了一个示例的配置文件app.config, ...