同福

Docker导出容器到镜像的方法export/import的使用技巧【210829】

介绍

介绍

我们辛辛苦苦调好了一个容器的设置,想保存起来怎么办?

我们需要备份一个容器的设置和数据,数据没有通过卷功能做持久化怎么办?

我们想把调整好的容器打包成一个镜像供其他环境使用,应该怎么办?

这些问题都涉及到一个操作,就是把容器数据整体导出,形成一个文件,或者一个镜像。

export

导出镜像可以使用export命令,export可以将一个容器(可以是运行中的容器)打包到一个tar文件里面。

所以容器里面的文件都可以在这个tar文件里面找到,不过卷数据不会被打包进来。

docker export maintain > tflinux-maintain-210830.tar

home/topic/2021/0830/18/1ec05e0ddeff7f15ae8a1b0ae8050cdd.png

import

导入容器到镜像可以使用import命令,import可以将一个通过export命令导出的tar文件导入到docker的一个新的镜像里面。

docker import tflinux-maintain-210830.tar tflinux/maintain:210830

home/topic/2021/0830/18/a600b5788c5ca877ac213daa04e5dee7.png注意:在通过使用import命令导入的镜像启动容器的时候必须指定shell,通常情况下就是/usr/sbin/init,如果步指定会报错。

docker run -tid --name maintain-210830 -h maintain tflinux/maintain:210830 /usr/sbin/init

home/topic/2021/0830/18/87a5f9ae2c95ea83d0128952ea502427.png

否则就会报Error response from daemon: No command specified错误了。

home/topic/2021/0830/18/006fc8ce8398cf96b0d5843fa9c69b30.png

特点

使用export/import方式创建的镜像是非常“纯净”的,它和基于其他镜像创建自己的镜像是不一样的,使用这个export/import创建的镜像完全不依赖任何其他i镜像,非常适合做基础镜像。

总结

今天学习了docker的export/import命令的使用方法,大家可以在需要备份容器或者调试容器功能的时候利用export/import命令完成纯净的镜像的建立。