目 录CONTENT

文章目录

Docker-Backup-Recovery

Administrator
2024-06-03 / 0 评论 / 0 点赞 / 28 阅读 / 0 字

Docker-Backup-Recovery

Backup

1.直接递归压缩整个docker目录

tar -czvf dockerbak.tar.gz /var/lib/docker

等待10分钟

2.查看压缩后的大小

root@:/tmp# ls -al

-rw-r--r-- 1 root root 2315519503 May 20 15:50 dockerbakk.tar.gz

root@:/tmp# du -sh dockerbakk.tar.gz

2.2G dockerbakk.tar.gz

然后传输到另一台server上恢复

Recovery

1.恢复之前先安装docker
apt-get install docker.io docker-compose unzip -y

如果遇到报错就使用

apt --fix-broken install -y

然后再安装docker

安装完成后,

切记要先关闭docker再恢复

要不然恢复的全是BUG

后期添加Tips

拿到一台新机器

先下载source.list

curl -o /etc/apt/sources.list http://1.1.1.1:9000/sources.list

cd /usr/local/bin/ && curl -L "https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc && source ~/.bashrc && cd /opt/docker_arl/ && docker-compose ps

2.解压缩

tar -xf dockerbak.tar.gz

会在在当前目录下解压缩出来,里面是/var/lib/docker

然后进入当前解压出来的/var/lib/目录下

mv docker /var/lib/docker

3.检查一下

ls /var/lib/docker

buildkit containers engine-id image network overlay2 plugins runtimes swarm tmp volumes

du -sh /var/lib/docker/

6.1G /var/lib/docker/

6.1G就对了

4.启动docker
systemctl start docker

查看docker实例

root@ecs:/var/lib/docker# docker ps
CONTAINER ID   IMAGE                               COMMAND                  CREATED       STATUS      PORTS                                                                  NAMES
8d61d638503b   test/                "sh -c 'wait-for-it.…"   3 weeks ago   Up 2 days
a0d6928d1587   test/                "sh -c 'gen_crt.sh; …"   3 weeks ago   Up 4 days     0.0.0.0:8008->443/tcp, :::8008->443/tcp
51d1e9ac41ee   test/                "sh -c 'wait-for-it.…"   3 weeks ago   Up 4 days
d0df6be581e6   rabbitmq:  		      "docker-entrypoint.s…"   3 weeks ago   Up 4 days
abb152086e2e   mongo:               "docker-entrypoint.s…"   3 weeks ago   Up 4 days
root@ecs:/var/lib/docker# 

如果docker实例没出来,那只能删掉/var/lib/docker目录,

重新解压缩dockerbak.tar.gz然后复制到/var/lib/docker目录下。

docker拓展

1. 停止所有运行的容器

docker stop $(docker ps -q)

2. 删除所有容器

docker rm $(docker ps -aq)

3. 删除所有镜像

docker rmi $(docker images -q) -f

4. 删除所有未使用的网络

docker network prune -f

5. 删除所有未使用的数据卷

docker volume prune -f

6. 验证清理结果

确保清理完成,运行以下命令检查是否还有残留:

容器:

docker ps -a

镜像:

docker images -a

网络:

docker network ls

卷:

docker volume ls

-.-

0

评论区