通过nginx镜像做测试,
首先下载nginx镜像
docker pull nginx
运行nginx镜像
docker run -d nginx:latest
进入nginx容器
docker exec -it 322c0a645388 /bin/bash
在容器内创建测试文件
touch test.txt
1、docker save
docker save -o nginx-save.tar nginx:latest
将nginx镜像保存到nginx-save.tar中,当然可以保存多个镜像到一个tar中
2、docker export
docker export -o nginx-export.tar 322c0a645388
将运行的nginx容器到处到nginx-export.tar
3、docker load
删除原来运行的nginx镜像
docker stop 322c0a645388
docker rm 322c0a645388
docker rmi nginx:latest
加载nginx-save.tar
docker load -i nginx-save.tar
重新运行load进来的镜像
docker run -d --name nginx-load nginx:latest
进入容器查看后,发现根目录没有测试文件test.txt。
因为docker save 是用来将一个或多个image打包保存的工具,作用对象是镜像。
4、docker import
导入镜像
docker import nginx-export.tar nginx:import
启动容器
docker run -it nginx:import /bin/bash
进入容器查看后,发现根目录存在测试文件test.txt。
因为docker export是用来将容器的文件系统进行打包的,作用对象是容器。
5、总结
docker save保存的是镜像;
docker export保存的是容器;
docker load用来载入镜像包;
docker import用来载入容器包,载入后是镜像。