docker save
docker save centos:self -o centos.tar導出鏡像到文件- 用於持久化鏡像,導出的tar包需要用
docker load -i imagedata.tar導入 - 會將鏡像的所有layer導出,導出的文件會比較大。
docker load不可指定鏡像名和tar。docker import可以指定鏡像名和tar- 可用
docker history 8652b9f0cb4c查看鏡像的layer[root@twilight0319 ~]# docker history centos:self IMAGE CREATED CREATED BY SIZE COMMENT c9dfc8a523b0 6 minutes ago bash 87.5MB <missing> 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 3 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B <missing> 3 weeks ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB
docker export
docker export containerid> dockertest.tar導出容器,導入后又會變成鏡像- 用於持久化容器。導出成tar包需要用
docker import導入docker import dockertest.tar -- centos:111或者cat dockertest.tar | docker import - imagename:tag
- 丟失所有元數據,只保存虛擬機的當前狀態。
[root@twilight0319 ~]# docker history centos:111 IMAGE CREATED CREATED BY SIZE COMMENT ef0539471f16 45 seconds ago 267MB Imported from -
坑
這四個命令的對應關系不可出錯,否則,會出現奇怪的問題比如:
這東西真是巨坑
Error response from daemon: OCI runtime create failed: container_linux.go:349 : starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown
- 轉移鏡像:
docker save imagename:tag -o imagedata.tar和docker load -i imagedata.tar - 轉移容器:
docker export containerid> dockertest.tar和docker import dockertest.tar -- imagename:tag
