在我们安装好的docker默认是把docker安装在:/var/lib/docker
系统盘中。
/var/lib/docke占用100%问题
查看/var/lib/docker/磁盘占用多大
du -hs /var/lib/docker/
查看Docker的磁盘使用情况
docker system df
查看linux系统磁盘情况
df -h
上图,你会发现:在/var/lib/docker上占用了100%的磁盘,而/data下的磁盘还有很多,我们是不是可以把/var/lib/docker下迁移到/data目录下呢。
查看docker根目录
docker info
可以看出docker的根目录是:/var/lib/docker
解决上述问题
从上述问题中我们可以发现出:docker的根目录是在/var/lib/docker
,那我们可以创建新的docker目录,执行命令df -h
,找一个大的磁盘,然后把/var/lib/docker
目录迁移到大点的磁盘上不就解决了么。
首先停止docker服务
systemctl stop docker
选择磁盘
使用 df -h
查询哪个磁盘空间大:
在上述图中可以看出:/data下的空间比较大,那么我们可以把docker根目录迁移到/data下。
创建存储docker根目录的文件夹
mkdir -p /data/docker/lib
迁移/var/lib/docker目录下面的文件到 /data/docker/lib
rsync -avz /var/lib/docker /data/docker/lib/
配置文件
配置 /etc/systemd/system/docker.service.d/devicemapper.conf。查看 devicemapper.conf 是否存在。如果不存在,就自己创建:
mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf
devicemapper.conf写入内容如下:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/data/docker/lib/docker
重新加载docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
确认是否加载成功
docker info
产生的问题
迁移/var/lib/docker目录后,Docker无法启动 (error initializing graphdriver: driver not supported)
systemctl start docker
错误原因:error initializing graphdriver: driver not supported
解决办法:在 /etc/docker 目录下创建daemon.json文件,并且加入以下配置
创建文件: touch daemon.json
编辑文件: vi daemon.json
文件内容:
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
再次执行
systemctl start docker
docker-runc not installed on system 问题
docker运行镜像的时候,报错如下:
WARNING: IPv4 forwarding is disabled. Networking will not work.
/usr/bin/docker-current: Error response from daemon: shim error: docker-runc not installed on system.
解决问题
cd /usr/libexec/docker/
ln -s docker-runc-current docker-runc