背景: 阿里云服务器被攻击挂掉,导致服务器无法使用,重启无效。
导出云盘
使用阿里云的服务,创建一个挂载到ecs服务器(被打崩的服务器)的云盘。然后初始化系统云盘(记得备份)。
docker容器挂载
- 将数据盘挂载到服务器(如下挂载后的云盘在系统的 /mnt 目录下)
mount /dev/vdb1 /mnt
- 重新安装docker
- 挂载容器
# 使用以下命令查询当前docker数据目录安装路径 例:/var/lib/docker
docker info | grep "Docker Root Dir"
# 停掉Docker服务
systemctl stop docker
# 根据上面查到的路径,移动整个/var/lib/docker目录到数据盘的目的路径(没有rsync命令时需安装rsync)
rsync -avzP /var/lib/docker /mnt/var/lib/docker # /mnt/var/lib/docker 是之前服务器的Docker Root Dir
#参数解释:
#-a,归档模式,表示递归传输并保持文件属性。
#-v,显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
#-P,显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。
#-z, 传输时进行压缩提高效率。
# 通过mount挂载的bind命令将新位置挂载到老位置
mount --bind /mnt/var/lib/docker /var/lib/docker
mount -a
# 重启docker
systemctl daemon-reload
systemctl start docker