因为本地物理机配置完了,所以要把服务器上的容器移到本机中,此时可以使用docker的导入导出功能,这也是docker自身提供的一个重要特征。


1、导出容器

导出容器可以导出一个已经创建的容器到一个文件,不管容器处于什么状态,可以使用docker export 命令。

命令格式为:docker export [-o|--output[=""]] CONTATINER

其中可以通过-o来指定导出的tar文件名,也可以直接通过重定向来实现。

看下我的容器列表:

docker 复制容器内文件到本地 docker拷贝容器_ubuntu


这里我将ubuntu 的容器导出到文件ubuntu_run.tar中:

docker 复制容器内文件到本地 docker拷贝容器_docker_02

注:这里可以填容器的name ,也可以填容器id的前三位

另一种格式为:docker export 容器id/name >文件名.tar


可以使用scp 指令将文件进行传送:scp ubuntu_run.tar root@124.207.96.94:/root/


2、导入容器

导入的文件可以使用docker import 命令导入变成镜像,该命令的格式为:

docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL|-[REPOSITORY[:YAG]]

其中-c 选项可以在导入的同时执行对容器进行修改的Dockerfile指令(网络等修改)


下面将导出的文件导入到系统中:

docker 复制容器内文件到本地 docker拷贝容器_迁移_03

导入成功


另外 docker load 命令也可以导入一个镜像存储文件,但是跟docker import 命令是有区别的:

  • docker import:丢弃了所有的历史记录和元数据信息,仅保存容器当时的快照状态。在导入的时候可以重新制定标签等元数据信息。
  • docker load:将保存完整记录,体积较大。