摘要
导出容器可以导出一个已经创建的容器到一个文件,不管容器处于什么状态,可以使用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 从本地容器文件导入成镜像文件;
- 我的微信
- 微信扫一扫
-
- 微信打赏一下咯
- 一分钱也是爱
-