容器化技术的出现,极大地方便了我们的开发和运维工作,在使用容器的时候,有时候我们需要将容器进行备份,本文详细的来介绍一下如何对容器进行备份、迁移等。
下面启动一个ubuntu容器为例进行说明
jagitch@jagitch-MS-7B93:~$ docker run -itd \
--name my-ubuntu ubuntu bash
2fdca5d71232ab95cd3d4fa5d275a05585bf8a98a37eb0e214f904e066e3e78c
- 1
- 2
- 3
提交容器
使用docker commit命令可以将一个docker容器创建为镜像(image)
jagitch@jagitch-MS-7B93:~$ docker commit -m \
"my-ubuntu backup 2024-05-30" -a "jagitch" \
my-ubuntu myubuntu:v0.1
sha256:82b703fc495ceb4f562bdc25db59af6d41548034aadd5c19306a0e4f61f12709
- 1
- 2
- 3
- 4
查看刚创建的镜像
jagitch@jagitch-MS-7B93:~$ docker images | grep v0.1
myubuntu v0.1 82b703fc495c 18 minutes ago 113MB
- 1
- 2
从新镜像运行容器
jagitch@jagitch-MS-7B93:~$ docker run -itd \
--name my-ubuntu-v0.1 myubuntu:v0.1 bash
984977a45a1047ed459622e0d3d5b4610b8307fcdd4ae24e96121ae30e55f82c
jagitch@jagitch-MS-7B93:~$ docker exec -it my-ubuntu-v0.1 bash
root@984977a45a10:/#
- 1
- 2
- 3
- 4
- 5
- 6
将镜像保存为文件
我们可以将镜像保存为文件,便于镜像的保存和传输,我们可以把镜像传输到新电脑,然后在新机上运行该镜像,相当于做了系统迁移,这比虚拟机真的方便了很多。
jagitch@jagitch-MS-7B93:~$ docker save myubuntu:v0.1 \
| gzip > myubuntu_v0.1.tar.gz
- 1
- 2
使用gzip压缩后,镜像文件大小减少了1倍
将镜像文件还原成Docker镜像
当我们的容器不小心被删除,或者想将我们的容器迁移到别的电脑上运行时,我们就可以从镜像文件中还原镜像,然后从镜像再创建出我们的容器(容器的状态是从容器创建镜像时的状态,为了不丢失我们的容器数据,可定期将容器导出为镜像文件保存)。
-
还原镜像
jagitch@jagitch-MS-7B93:~$ docker load < myubuntu_v0.1.tar.gz Loaded image: myubuntu:v0.1 jagitch@jagitch-MS-7B93:~$ docker images | grep myubuntu myubuntu v0.1 82b703fc495c 34 minutes ago 113MB
- 1
- 2
- 3
- 4
-
运行镜像
jagitch@jagitch-MS-7B93:~$ docker run -itd \ --name my-ubuntu-v0.1 myubuntu:v0.1 bash 7c81fd3983b9074b1d5b10319ec5b121d8e1445b104fae9176712e778a78222b
- 1
- 2
- 3
写在后面的话
除了将镜像导出为文件进行保存,我们也可以将镜像提交到镜像仓库(这需要一定的花费),免费的一般只能提交公开的镜像,因此,如果我们的镜像包含了一些隐私数据,则建议通过保存为文件的方式进行保存。
文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树容器(docker)安装docker19213 人正在系统学习中
评论记录:
回复评论: