Skip to content

导入导出

在某些情况下,我们自定义镜像作为模版,比如在Ubuntu容器安装Java运行环境,我们可以将此初始化好的环境导出称为镜像,以后使用此镜像来创建容器,就自带了java的运行环境,而不用每次创建容器都进行环境的安装,类似虚拟机的模板文件

当然也可以使用Dockerfile直接构建镜像,但是Dockerfile需要编写,而导出镜像则不需要编写,直接将容器导出即可,当然,导出的镜像也可以导入到其他服务器上使用,导入的镜像可以创建容器,也可以直接使用,导入的镜像也可以作为模板进行修改,创建新的镜像。

1 容器的导入导出

1.1 容器导出

docker export -o 文件名.tar 容器ID

bash
root@kali:~# docker export -o myAlpine.tar.gz 9188 
root@kali:~# ls
myAlpine.tar.gz  thinclient_drives

1.2 容器导入

docker import 文件名 镜像用户/镜像名:镜像版本号

bash
root@kali:~# docker import myAlpine.tar.gz moujun/my-alpine:0.0.1
sha256:0a79a0402e43234468b0896277bf342c385f73134ac21ecde0e012c946fa0318
root@kali:~# docker images                       
REPOSITORY                         TAG           IMAGE ID       CREATED         SIZE
moujun/my-alpine                   0.0.1         0a79a0402e43   7 seconds ago   5.59MB
alpine                             latest        c059bfaa849c   7 weeks ago     5.59MB
ubuntu                             latest        ba6acccedd29   3 months ago    72.8MB

root@kali:~#

注意

镜像名称必须要小写,否则报错

2 镜像的导入导出

2.1 镜像导出

docker save -o 文件名.tar 镜像名[:镜像tag]

bash
root@kali:~# docker save -o myAlpine.tar.gz moujun/my-alpine:0.0.1
root@kali:~# ls
myAlpine.tar.gz  myAlpine.tar.gz  thinclient_drives

2.2 镜像导入

docker load -i 文件名.tar

bash
root@kali:~# docker load -i myAlpine.tar.gz 
Loaded image ID: sha256:0a79a0402e43234468b0896277bf342c385f73134ac21ecde0e012c946fa0318
root@kali:~# docker images
REPOSITORY                         TAG           IMAGE ID       CREATED         SIZE
moujun/my-alpine                   0.0.1         0a79a0402e43   2 minutes ago   5.59MB
alpine                             latest        c059bfaa849c   7 weeks ago     5.59MB
ubuntu                             latest        ba6acccedd29   3 months ago    72.8MB