关于docker新建镜像的一些事儿
执行指令:docker load -i *.tar时docker报空间不足的问题
注意定期清理缓存呀~
docker system prune
查看docker位置
docker info|grep Dir
查看根路径磁盘占用率
df -Th /var/lib/docker
试试看var里排名前10的大文件看能不能删掉些:
du -h /var | sort -rh | head -n 10
如果占用率比较高,尝试如下操作
另外提醒一句,没有sudo权限别硬刚~~~
1.清理无用文件或者悬空镜像
docker image prune -a --force --filter "until=240h" # 240h可根据情况修改
2.更换docker默认存储路径
1)建个新的保存路径
mkdir -p /home/***/docker/lib
2)配置docker启动文件
vi /etc/systemd/system/docker.service.d/devicemapper.conf #原本没有就新建一个
添加这个内容:
[Service]
ExecStart=/usr/bin/dockerd --graph=/home/***/docker/lib/docker
或者
sudo vim /etc/docker/daemon.json
查看并修改里面的存储位置,如:Docker Root Dir: ***
3)重新加载docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
3.调整docker服务器启动参数
docker info查看有没有Base Device Size
若有且过小就针对性修改一些值~
vim /usr/lib/systemd/system/docker.service
[root@*** ~]# grep "ExecStart=" /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -s=devicemapper --storage-opt dm.basesize=60G --storage-opt dm.loopmetadatasize=20G
其中:
dm.basesize 默认为10G,限制容器和镜像的大小
dm.loopdatasize 存储池大小,默认为100G
dm.loopmetadatasize 元数据大小,默认为2G
dm.datadev 存储池设备,默认生成一个/var/lib/docker/devicemapper/devicemapper/data文件
dm.metadatadev 元数据设备,默认生成一个/var/lib/docker/devicemapper/devicemapper/metadata文件
dm.fs 用于基本映像的文件系统(xfs或ext4)
dm.blocksize:精简池的自定义块大小。默认值为64K。
4.扩容存储空间
进入docker的根目录
查看空间使用情况:
df -h /var/lib/docker/
查看可分配空间:
sudo vgdisplay
扩容到20G :
lvextend -L 20G /dev/mapper/ubuntu–vg-ubuntu–lv
重新计算容量:
resize2fs /dev/mapper/ubuntu–vg-ubuntu–lv
df /var/lib/docker/
5.软链接
1)复制到新的docker安装目录
cp -a /var/lib/docker/ /home/***/docker_new_dir/
不放心可以备份一下:
mv -u /var/lib/docker /var/lib/docker.bak
2)关停Docker服务
sudo systemctl stop docker
3)新建链接
ln -fs /home/***/docker_new_dir/docker /var/lib/docker
4)重启docker服务
systemctl start docker
6.删点日志吧
日志位置,emmmmm,一般在/var/lib/docker/container或者/var/log,别虎,可以先复制到别的位置,一般是json.log结尾的文件哦~
7.试试迁移到其他盘
看看空间:
df -h
查看docker镜像和容器存储目录的空间大小
du -sh /var/lib/docker/
停止docker服务:
systemctl stop docker
迁移docker到其他磁盘:
mkdir -p /data2/docker/lib/
rsync -avz /var/lib/docker /data2/docker/lib/
修改docker配置:
修改/etc/docker/daemon.json,增加docker目录配置
vi /etc/docker/daemon.json
添加:
{
“exprimential”:true,
“graph”:" /data2/docker/lib/",
}
重载、重启docker服务:
systemctl daemon-reload && systemctl restart docker
检查docker是否绑定新目录:
docker info
看看docker root dir变没变
删除旧的docker目录:
rm -rf /var/lib/docker
8.更多
懂得不多,找资料可以去看看这个url:
https://docs.docker.com/engine/reference/commandline/dockerd/