可以将Docker容器的文件系统内容保存到tarball存档文件中。这在将容器文件系统移动到其他主机的情况下非常有用,例如,如果数据库容器发生了重要的更改,并且否则无法将这些更改复制到其他位置。请注意,最好是使用docker run命令或docker-compose.yml文件从更新的映像中创建一个全新的容器,而不是导出和移动容器的文件系统。Docker的部分能力是其创建映像和容器的声明式样式的可审核性和责任制。通过使用docker export和docker import,由于混淆了容器的文件系统从其原始状态所做的更改,因此降低了此功能。
docker export -oredis.tarredis
上面的命令将创建一个空映像,然后将redis容器的文件系统导出到该空映像中。要从tarball归档文件导入,请使用:
docker import ./redis.tar redis-imported:3.0.7
该命令将创建redis-imported:3.0.7映像,从中可以创建容器。也可以在导入时创建更改,以及设置提交消息:
docker import -c="ENV DEBUG true" -m="enable debug mode" ./redis.tar redis-changed
可与使用Dockerfile指示-c命令行选项是CMD,ENTRYPOINT,ENV,EXPOSE,ONBUILD,USER,VOLUME,WORKDIR。