技术分享
docker镜像备份和恢复
2020-12-30
新搭了一台centos虚拟机,还是使用上一篇文章安装好的mysql容器来做测试。
如果有些命令看不懂,查看我的上一篇文章,docker的安装和测试demo。
1、查看目前加载好的容器,(容器是配置好的镜像,包含软件本地的数据。比如mysql数据库里插入的数据,都会被存在此容器中,备份的时候不会丢失,备份的镜像体积一般大于原镜像)
docker ps
2、这里将此容器拷贝成镜像。
docker commit 原容器id 新镜像名称
3、通过命令查看所有镜像,发现刚才新创建的镜像。
4、这里我们将打包好的镜像转换为tar文件,这里是放到了usr目录下.。
查看usr目录中,出现了压缩好的tar包。
5、停止正在运行中的mysql容器。
docker stop 运行的容器id
6、删除 所有容器。
docker rm `docker ps -a -q`
7、删除所有镜像,这里我们看到,最开始安装的mysql-57-centos7镜像和复制的镜像mysql-xjj都已经被删除。
docker rmi `docker images -q`
8、导入本地备份的镜像的tar包。
8、可以查看,此时备份的docker镜像已经成功导入。
docker images
9、创建mysql容器。
docker run -di --name=mysql-xjj -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root mysql-xjj
10、启动容器
ps-a 查看已经安装好的容器。
docker restart 镜像id 根据上一步的容器id启动容器
11、此时就可以远程调用mysql了,如果备份前mysql有数据的话,数据也不会损失。
12、备份问题:在使用备份镜像启动容器后,mysql远程连接失败,重启容器和docker均无效。于是我直接reboot重启了虚拟机,然后重启docker和容器,问题得到解决,有知道问题原因的可以告诉我。

- 标签:
-
技术分享