docker为应用程序提供独立、轻量能移植的运行环境。常用于开发测试等。docker中导出镜像和导出容器数据是2个不同概念,导出镜像是不含容器运行时产生的数据。
docker镜像的导出,不含容器运行时生成的数据仅导出使用docker save情况。以下命令将镜像myimage:tag为一个 tar 文件myimage.tar。
docker save -o myimage.tar myimage:tag
导出docker容器和运行时的数据使用的是docker export命令,这样导出容器的完整的文件系统,如全部数据和更改。
将容器mycontainer的文件系统转换为一个 tar 文件mycontainer.tar。
docker export -o mycontainer.tar mycontainer
想要导出容器当前的状态,含数据的存为一个新的镜像,则可以用docker commit命令,要先创建包含数据的新镜像。以下命令将容器mycontainer的当前状态mynewimage。
docker commit mycontainer mynewimage
再引入新镜像,使用下面这个命令将重新镜像mynewimage为一个 tar 文件mynewimage.tar。
docker save -o mynewimage.tar mynewimage
在另外一台主机中,可以使用docker load嵌入式镜像,实现镜像和容器的导入。
docker load -i myimage.tar
或者是
docker load -i mynewimage.tar
如果是通过docker export导出容器文件系统,用docker import导入。创建一个新镜像mynewcontainer,可以基于这个新镜像来启动新容器。
cat mycontainer.tar | docker import - mynewcontainer
主要步骤是导出镜像-导出容器数据-保存容器状态为新镜像。导出docker镜像和容器数据的办法不止这一种,如果您还需要了解其他方式可以来访华纳云官网了解更多。