docker 镜像的导入导出

2018年11月26日20:48:04 发表评论 690 views

摘要

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

命令格式为:docker export [-o|--output[=""]] CONTATINER
其中可以通过-o来指定导出的tar文件名,也可以直接通过重定向来实现。

将镜像导出为本地文件

[root@localhost images_docker]# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
lelai/php                           7.0-apahce          3400b08d370f        5 months ago        400.3 MB
docker.io/rancher/net               holder              665d9f6e8cc1        13 months ago       267.2 MB
kibana                              v5                  caba872a88e5        18 months ago       780.7 MB
elasticsearch                       v5                  965fb9cc226d        18 months ago       985.3 MB
[root@localhost images_docker]# docker save -o /data/images_docker/7.0-apahce-php7.tar lelai/php:7.0-apahce
[root@api-group images_docker]# ll
总用量 5741360
-rw------- 1 root root  412393472 5月  23 17:05 7.0-apahce-php7.tar

将images文件导入到docker中:

###将images文件导入到docker中:
[root@node2 docker_images]# docker load --input ./7.0-apahce-php7.tar
c01c63c6823d: Loading layer [=======================>]  129.3MB/129.3MB
a79e2eff4bdc: Loading layer [=======================>]  3.072kB/3.072kB
561e9865c4eb: Loading layer [=======================>]  209.6MB/209.6MB
d1396ca7b379: Loading layer [=======================>]  3.584kB/3.584kB
11a1eb05c0b0: Loading layer [=======================>]  7.713MB/7.713MB
e3a76a0c8bbd: Loading layer [=======================>]  11.26kB/11.26kB
0b83a64a6847: Loading layer [=======================>]  9.728kB/9.728kB
5c5867571bb0: Loading layer [=======================>]  4.096kB/4.096kB
0225ffa2748d: Loading layer [=======================>]   7.68kB/7.68kB
870e66c05e5e: Loading layer [=======================>]  12.49MB/12.49MB
c58970c66c26: Loading layer [=======================>]  4.096kB/4.096kB
42f8740d9af5: Loading layer [=======================>]  45.84MB/45.84MB
dbba4140d335: Loading layer [=======================>]  11.78kB/11.78kB
0efd1eff4c63: Loading layer [=======================>]  4.847MB/4.847MB
700ab112a288: Loading layer [=======================>]      1MB/1MB
dae568f9d451: Loading layer [=======================>]  1.399MB/1.399MB
1680cc3febfb: Loading layer [=======================>]  4.608kB/4.608kB
74591e642814: Loading layer [=======================>]  74.24kB/74.24kB
86085e626658: Loading layer [=======================>]  4.096kB/4.096kB
b9bf2d0fd574: Loading layer [=======================>]  4.608kB/4.608kB
Loaded image: lelai/php:7.0-apahce
[root@node2 docker_images]# docker images
REPOSITORY        TAG               IMAGE ID          CREATED           SIZE
centos            latest            2d194b392dd1      2 months ago      195MB
lelai/php         7.0-apahce        3400b08d370f      5 months ago      400MB
logstash          5.5               98f8400d2944      8 months ago      724MB

正在运行的geteway 容器导出为本地文件:

[root@localhost images_docker]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                           NAMES
cb9fc767bfd1        lelai/php:7.0-apahce   "docker-php-entrypoin"   6 hours ago         Up 3 hours          0.0.0.0:21516->80/tcp                           lxbing_lottery
abd4947c53cd        lelai/php:7.0-apahce   "docker-php-entrypoin"   46 hours ago        Up 44 hours         0.0.0.0:21515->80/tcp                           lelai_lv1
e67fca459df9        3400b08d370f           "docker-php-entrypoin"   12 days ago         Up 7 days           0.0.0.0:8009->80/tcp                            geteway
f0afaee9c667        lelai/php:7.0-apahce   "docker-php-entrypoin"   5 weeks ago         Up 7 days           0.0.0.0:8188->80/tcp                            lottery
[root@localhost images_docker]# docker export e67fca459df9  > ./geteway.tar
[root@localhost images_docker]# ll
总用量 6189324
-rw------- 1 root root  412393472 5月  23 17:05 7.0-apahce-php7.tar
-rw-r--r-- 1 root root  458711040 5月  23 17:23 geteway.tar
-rw-r--r-- 1 root root 5466755072 10月 19 2016 mysql.img
[root@localhost images_docker]#
node3导入刚才的文件为新的镜像:

[root@node3 docker_images]# scp root@192.168.1.10:/data/images_docker/geteway.tar /data/docker_images root@192.168.1.10's password: geteway.tar 100% 437MB 91.0MB/s 00:04 [root@node3 docker_images]# ll 总用量 850688 -rw------- 1 root root 412393472 5月 23 17:08 7.0-apahce-php7.tar -rw-r--r-- 1 root root 458711040 5月 23 17:24 geteway.tar [root@node3 docker_images]# cat geteway.tar | sudo docker import - php7-apache:lelai //重新给镜像起一个名称和tar sha256:2e1e6aa1069e5edf9a023d96a74b9f15c12bef50cd1121f07db44e9dabfb6b4e [root@node3 docker_images]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE php7-apache lelai 2e1e6aa1069e 8 seconds ago 446MB centos latest 2d194b392dd1 2 months ago 195MB lelai/php 7.0-apahce 3400b08d370f 5 months ago 400MB logstash 5.5 98f8400d2944 8 months ago 724MB [root@node3 docker_images]#

镜像导入成功

最后用该镜像新建容器,并将原来服务器上的所需文件 scp 过来即可
然后根据需要docker run起来容器即可,例如:

# docker run -it --name=grafana4_3 -h grafana4_3 -p 3000:3000 -d grafana4_3:latest

###备注:
也可以将当前正在运行的容器通过 # docker commit   -p 30b8f18f20b4 container-backup  提交为一个新的images,然后再通过方法一进行images的导出导入
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
docker load 从本地镜像文件导入成镜像;
docker import 从本地容器文件导入成镜像文件;

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 微信打赏一下咯
  • 一分钱也是爱
  • weinxin
广告也精彩
暖先生
ELK全套视频
SONOS PLAY:1搜诺思智能音响美国原创进口WiFi无线音
DJI大疆 御 Mavic Air 便携可折叠4K无人机 高清航拍
VR眼镜3D虚拟现实头戴式游戏头盔rv眼睛4d手机专用ar苹果一体机

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: