Docker 本地导入导出
本文最后更新于:2024年3月18日 凌晨
Docker 本地导入导出
概述
docker save
保存的是镜像(image),docker export
保存的是容器(container)
docker load
用来载入镜像包,docker import
用来载入容器包,但两者都会恢复为镜像。
docker export
导出的是一个容器的快照,不是镜像本身,也就是说没 layer,dockerfile 里的workdir
,entrypoint
之类的所有东西都会丢失,commit
过的话也会丢失。
docker export
快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而docker save
镜像存储文件将保存完整记录,体积也更大。
docker load
不能对载入的镜像重命名,而docker import
可以为镜像指定新名称。
命令
export
- 将文件系统作为一个tar归档文件导出到STDOUT
1
| $ docker export [OPTIONS] CONTAINER
|
- -o:将输入内容写到文件。
- 将id为a404c6c174a2的容器按日期保存为tar文件。
实例
1 2 3 4
| $ docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
$ ls mysql-`date +%Y%m%d`.tar mysql-20160711.tar
|
import
1
| $ docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
|
- -c:应用docker 指令创建镜像;
- -m:提交时的说明文字。
实例
- 从镜像归档文件
my_ubuntu_v3.tar
创建镜像,命名为test/ubuntu:v4
1 2 3 4 5 6
| $ docker import my_ubuntu_v3.tar test/ubuntu:v4 sha256:63ce4a6d6bc3fabb95dbd6c561404a309b7bdfc4e21c1d59fe9fe4299cbfea39
$ docker images test/ubuntu:v4 REPOSITORY TAG IMAGE ID CREATED SIZE test/ubuntu v4 63ce4a6d6bc3 20 seconds ago 142.1 MB
|
save
1
| $ docker save [OPTIONS] IMAGE [IMAGE...]
|
实例
- 将镜像
test/ubuntu:v3
生成 my_ubuntu_v3.tar
文档。
1 2 3 4
| $ docker save -o my_ubuntu_v3.tar test/ubuntu:v3
$ ll my_ubuntu_v3.tar -rw------- 1 test test 142102016 Jul 11 01:37 my_ubuntu_v3.ta
|
load
- –input , -i:指定导入的文件,代替 STDIN
- –quiet , -q:精简输出信息。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE
$ docker load < busybox.tar.gz Loaded image: busybox:latest
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 769b9341d937 7 weeks ago 2.489 MB
$ docker load --input fedora.tar Loaded image: fedora:rawhide Loaded image: fedora:20
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 769b9341d937 7 weeks ago 2.489 MB fedora rawhide 0d20aec6529d 7 weeks ago 387 MB fedora 20 58394af37342 7 weeks ago 385.5 MB fedora heisenbug 58394af37342 7 weeks ago 385.5 MBs fedora latest 58394af37342 7 weeks ago 385.5 MB
|