Docker更改默认存储路径
在linux下通常docker都是默认安装的,且默认的镜像,容器存储路径都位于/var/lib/docker中,可以通过docker info命令来查看,如下:
$ docker info Containers: 12 Images: 41 Storage Driver: aufs Root Dir: /var/lib/docker/ Backing Filesystem: extfs Dirs: 66 Dirperm1 Supported: false Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.13.0-32-generic Operating System: Ubuntu 14.04.1 LTS CPUs: 1 Total Memory: 1.954 GiB Name: iZ23mtq8bs1Z ID: M5N4:K6WN:PUNC:73ZN:AONJ:AUHL:KSYH:2JPI:CH3K:O4MK:6OCX:5OYW
有时 / 根目录不是很大,就容易造成存储不够,像我的机器 / 根目录30G,就不够用了,而/home当时就给分配了500G,接受教训,如果是自己用而且都是默认安装 / 根目录一定要分配的大一点,/home可以不用这么大。
解决docker容器存放目录磁盘空间满了问题
前言
docker所在服务器,运行了一段时间后,发现服务器磁盘目录快不够用了。通过
du -h --max-depth=1 /
逐级目录排查,发现/var/lib/docker目录文件过大。通过以下方法,解决该问题。转移数据修改docker默认存储位置
有多种方式修改docker默认存储位置。
最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。
1.停止docker服务
systemctl stop docker
2.创建新的docker目录,执行命令df -h,找一个大的磁盘
我在 /home目录下面建了/home/docker/lib目录
mkdir -p /home/docker/lib
3.迁移/var/lib/docker目录下面的文件到/home/docker/lib
迁移后的完成docker路径:/home/docker/lib/docker
rsync -avz /var/lib/docker/ /home/docker/lib/
4.配置 /etc/systemd/system/docker.service.d/devicemapper.conf
查看/etc/systemd/system/docker.service.d目录及devicemapper.conf是否存在。如果不存在,就新建
查看/etc/systemd/system/docker.service.d目录及devicemapper.conf是否存在。如果不存在,就新建
mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf
5. devicemapper.conf添加如下内容:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
6.重启docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
7.确认Docker Root Dir修改是否已经生效
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info ... Docker Root Dir: /home/docker/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ ...
8.启动成功后,再确认之前的镜像是否还在
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 10.80.177.233/policy 2.1.2 64ac4e178cd2 2 hours ago 818 MB 10.80.177.233/crm 2.1.3 d7636fbb7a29 2 hours ago 762 MB
9.确定容器没问题后删除/var/lib/docker/目录中的文件