Docker上跑的服务突然挂掉了,处于不可用状态,无法启动容器,这个时候查看容器运行状态都不是running。查看磁盘占用情况发现系统分区磁盘几乎占满。
这是因为Docker默认安装RootDir目录是/var/lib/docker,系统盘容量本身不大,后续数据越来越多,于是考虑将Docker数据迁移到挂载盘上。
systemctl stop docker
systemctl stop docker.socket
不停止socket可能会报错
Warning: Stopping docker.service, but it can still be activated by: docker.socket
mkdir -p /mnt/data/
rsync -avz /var/lib/docker/ /mnt/data
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo vi /etc/systemd/system/docker.service.d/devicemapper.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/mnt/data/docker
systemctl daemon-reload
sudo systemctl start docker.socket
docker info |grep Root
Docker Root Dir: /mnt/data/docker
sudo systemctl start docker
查看之前的images是否还在
docker images
查看容器是否还在
docker ps -a
docker start xxx
rm -rf /var/lib/docker